Bevezetés a Python Switch nyilatkozatba
A kapcsoló nyilatkozat nagyon hasznos és hatékony programozási funkció. Ez helyettesíti az if-else-if létra utasításokat, és jobb teljesítményt és jobban kezelhető kódot biztosít, mint egy if-else-if létra utasítás. A legtöbb programozási nyelv (például Java, C stb.) Kapcsoló utasításokat kínál, de a Python nyelvnek nincs kapcsoló utasításai. Ha azonban szeretne váltani az eset-állítások között, akkor nagyon hatékony módja van annak, hogy a Python-ban megvalósítsák a váltási eset-állítás funkciót. Ez az oktatóanyag segít megvalósítani.
folyamatábra
A kapcsoló utasítás minden programozási nyelven ugyanazzal a funkcióval rendelkezik, de kissé eltérõ szintaxissal. A Python nyelv nem tartalmaz beépített kapcsoló utasításokat. Ezt a szolgáltatást ugyanazzal az áramlással és funkcionalitással valósíthatjuk meg, de eltérő szintaxissal és megvalósítással a Python Dictionary használatával.
A kapcsoló állítás szintaxisa
Csak a kapcsoló utasítás két különféle szintaxisát vizsgálja meg. Az első utasítás bemutatja a kapcsoló utasítások szintaxisát más programozási nyelveken, például a C, a Java, stb. A második utasítás a Switch utasítás Python implementációja. Világosan összekapcsolhatja, hogy mindkettő funkcionális szempontból hasonló, de megvalósításban eltérő.
1. Váltás más nyelveken (c, Java, ..)
Szintaxis:
switch(N)
(
case 1: Statement if N = 1;
break;
case 2: Statement if N = 2;
break;
::
case n: Statement if N = n;
break;
default: Statement if N doesn't match any
)
2. Kapcsolja be a megvalósítást Pythonban
Szintaxis:
switcher=
(
key_1: value_1/method_1(),
key_2: value_2/method_2(),
key_3: value_3/method_3(),
::
key_n: value_n/method_n(),
)
key = N
value = switcher.get(key, "default")
A váltási nyilatkozat működése
- A szokásos kapcsoló utasítás működése bármely programozási nyelven hasonló. Több esetben áll, amelyek mindegyike rendelkezik kódblokkkal és break utasításokkal.
- A bemeneti argumentumot egymás után több esettel hasonlítják össze. Ha az argumentum megegyezik az egyik esettel, akkor a megfelelő blokk utasítás kerül végrehajtásra, és a vezérlés kijön a kapcsoló utasításból a break utasításban.
- Ha egyik eset sem felel meg a bemeneti argumentumnak, akkor az alapértelmezett blokk utasítás kerül végrehajtásra.
- A kapcsoló utasítások Python megvalósításában a Python szótárt kapcsolóként és a szótár kulcsait tekintjük esetekként. Itt hívjuk a szótár get () függvényét a szükséges argumentumokkal, azaz beviteli kulcsmal és alapértelmezett értékkel.
- Ha a beviteli gomb megegyezik a szótár bármelyik gombjával, akkor a megfelelő érték kerül visszatérítésre. Ha azonban a beviteli kulcs nem egyezik a szótárgombok egyikével, akkor az alapértelmezett érték kerül visszaadásra.
A Switch utasítás végrehajtása Pythonban
Mint tudjuk, a kapcsoló eset utasítás és az if-else-if létra utasítás váltakozva vannak egymással. Mindkettő felhasználható ugyanazon cél elérésére, de a kapcsoló eset utasítás jobb teljesítményt és jobban kezelhető kódot biztosít, mint az if-else-if létra utasítás. A Python nyelvnek nincs kapcsolónyilatkozata, de hasonló funkciót tudunk megvalósítani a Python Dictionary segítségével.
A következő szakaszban láthatjuk mindegyik példáját.
1. példa
If-else-if létra használata - Alternatív megoldás az esetek kiváltására. Ebben a példában a if-else-if létrát használtuk a hét napjának meghatározására. Ugyanezen felhasználási esetre a switch állapotának a Python-ban történő megvalósítását is láthatjuk.
Kód:
def get_week_day(argument):
if(argument == 0):
day="Sunday"
elif(argument == 1):
day="Monday"
elif(argument == 2):
day="Tuesday"
elif(argument == 3):
day="Wednesday"
elif(argument == 4):
day="Thursday"
elif(argument == 5):
day="Friday"
elif(argument == 6):
day="Saturday"
else:
day="Invalid day"
return day
# Driver program
if __name__ == "__main__":
print (get_week_day(6))
print (get_week_day(8))
print (get_week_day(0))
Kimenet:
2. példa
A kapcsoló utasítás végrehajtása karakterláncok szótárával. A Python nyelvnek nincs kapcsolónyilatkozata. Azonban hatékonyan tudjuk megvalósítani a kapcsoló utasítás funkciót a Pythonban az alábbi szótár használatával.
Magyarázat: Szótár a Pythonban a kulcs- és értékpárok rendezetlen gyűjteménye. Az alábbi kódrészletben a váltó egy szótár-változó, amely kulcsot tart: az értékpárok hasonlóak a kapcsolóhoz hasonló esetekhez.
A get () metódussal hozzáférhetünk a szótár eleméhez az argumentumok kulcsaként és az opcionális alapértelmezett érték átadásával. Az alapértelmezett érték segít a kapcsoló utasítás „alapértelmezett esetének” megvalósításában.
Kód:
def get_week_day(argument):
switcher = (
0: "Sunday",
1: "Monday",
2: "Tuesday",
3: "Wednesday",
4: "Thursday",
5: "Friday",
6: "Saturday"
)
return switcher.get(argument, "Invalid day")
# Driver program
if __name__ == "__main__":
print (get_week_day(6))
print (get_week_day(8))
print (get_week_day(0))
Kimenet:
Ebben a példában adjuk át a 6-ot bemeneti argumentumként vagy beviteli kulcsként, amelyet a szótár kulcsaiban keresünk (váltó). Mivel a = 6 kulcs megtalálható, akkor szombatként adja vissza az értéket. Most adja át a 8-at beviteli kulcsként, amelyet a szótár (átváltó) gombjai között keres. Mivel a = 8 kulcs nem található, akkor az alapértelmezett értéket érvénytelen napként adja vissza.
3. példa
A kapcsoló utasítás végrehajtása a szótár függvények feltérképezésével. A fenti példában a szótár értékei string data type, azaz állandóak. De érdekes tudni, hogy a Python szótár értékei bármilyen adattípus lehetnek.
A Python szótár értékei lehetnek konstansok (egész számok, karakterláncok) és függvények. Ebben a példában a kapcsoló utasításot valósítjuk meg, amely az alábbiakban ismertetett függvényszótár segítségével támogatja az egyes kapcsoló esetek funkcióhívását is.
Kód:
def get_week_day(argument):
def zero():
return "Sunday"
def one():
return "Monday"
def two():
return "Tuesday"
def three():
return "Wednesday"
def four():
return "Thursday"
def five():
return "Friday"
def six():
return "Saturday"
switcher = (
0: zero(),
1: one(),
2: two(),
3: three(),
4: four(),
5: five(),
6: six()
)
return switcher.get(argument, "Invalid day")
# Driver program
if __name__ == "__main__":
print (get_week_day(6))
print (get_week_day(8))
print (get_week_day(0))
Kimenet:
Következtetés
Mint fentebb láttuk, ugyanaz a felhasználási eset valósítható meg a kapcsoló eset utasításával és az if-else-if létrával. A Switch nyilatkozata azonban könnyebben kezelhető és olvasható kódot biztosít, mint az if-else-if létra utasítás. Azt is láttuk, hogy a Python nyelvnek nincs kapcsolónyilatkozata, ám ezt a Python Dictionary segítségével hatékonyabban megvalósíthatjuk.
Ajánlott cikkek
Ez egy útmutató a Python Switch nyilatkozathoz. Itt tárgyaljuk a szintaxist, folyamatábrát és a python kapcsoló utasításának működését, példákat és megvalósítást. A következő cikkeket is megnézheti további információkért -
- Öröklés Pythonban
- Python túlterhelés
- Szótár Pythonban
- Szótár Pythonban