Úvod do príkazu Python Switch

Príkaz switch je veľmi užitočná a výkonná funkcia programovania. Je to alternatíva k príkazu rebríka if-else-if a poskytuje lepší výkon a lepšie zvládnuteľný kód ako vyhlásenie rebríčku if-else-if. Väčšina programovacích jazykov (ako Java, C, atď.) Ponúka príkazy na prepínanie, ale jazyk Python nemá žiadne príkazy na prepínanie. Ak však chcete prepnúť príkazy typu case-case, existuje veľmi efektívny spôsob, ako implementovať funkciu príkazu case-switch v Pythone. Tento tutoriál vám pomôže implementovať ho.

vývojový diagram

Príkaz switch v každom programovacom jazyku má rovnakú funkcionalitu, ale mierne odlišnú syntax. Jazyk Python neposkytuje žiadne vstavané príkazy pre prepínanie. Túto funkciu môžeme implementovať s rovnakým tokom a funkčnosťou, ale s odlišnou syntaxou a implementáciou pomocou Python Dictionary.

Syntax príkazu Switch

Stačí sa pozrieť na nižšie uvedenú dve rôzne syntaxe príkazu switch. Prvý príkaz ukazuje štandardnú syntax príkazov switch v iných programovacích jazykoch ako C, Java, atď. Druhým príkazom je implementácia príkazu Switch v Pythone. Jednoznačne môžete súvisieť s tým, ako sú funkčné, ale rozdielne vo vykonávaní.

1. Prepnúť na iné jazyky (c, Java, ..)

syntaxe:

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. Prepnite implementáciu v Pythone

syntaxe:

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")

Fungovanie príkazu na prepínanie

  • Fungovanie štandardného príkazu prepínača v akomkoľvek programovacom jazyku je podobné. Pozostáva z viacerých prípadov, z ktorých každý má kódový blok a príkaz na prerušenie.
  • Argument vstupu sa porovnáva s viacerými prípadmi jeden po druhom. Ak sa argument zhoduje s ktorýmkoľvek z týchto prípadov, vykoná sa zodpovedajúci príkaz bloku a kontrola vychádza z príkazu switch na príkaz break.
  • Ak sa žiadny z prípadov nezhoduje s argumentom vstupu, vykoná sa predvolený príkaz bloku.
  • Pri implementácii príkazov prepínača Python považujeme slovník Python za prepínač a kľúče slovníka ako prípady. Tu nazývame funkciu get () slovníka s požadovanými argumentmi, tj vstupným kľúčom a predvolenou hodnotou.
  • Ak sa vstupné tlačidlo zhoduje s ktorýmkoľvek z klávesov slovníka, vráti sa zodpovedajúca hodnota. Ak sa však vstupný kľúč nezhoduje so žiadnym z klávesov slovníka, vráti sa predvolená hodnota.

Implementácia príkazu Switch v Pythone

Ako vieme, vyhlásenie o prepnutí prípadu a vyhlásenie o rebríčku, ak je to iné, sa navzájom striedajú. Obidve sa dajú použiť na dosiahnutie toho istého účelu, ale vyhlásenie prípadu prepínača poskytuje lepší výkon a lepšie spravovateľný kód ako vyhlásenie rebríčku if-else-if. Jazyk Python nemá žiadne výkazy prepínača, ale podobnú funkciu môžeme implementovať pomocou slovníka Python.

V nasledujúcej časti sa pozrieme na implementáciu každého príkladu.

Príklad č. 1

Použitie rebríka if-else-if - alternatíva k prepnutiu prípadu. V tomto príklade sme na získanie dňa v týždni použili rebrík if-else-if. V rovnakom prípade uvidíme aj implementáciu stavu prepínača v Pythone.

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))

Výkon:

Príklad č. 2

Implementácia príkazu switch pomocou slovníka reťazcov. Jazyk Python nemá žiadne výkazy prepínača. V Pythone však môžeme efektívne implementovať funkciu príkazu switch pomocou slovníka, ako je uvedené nižšie.

Vysvetlenie: Slovník v Pythone je neusporiadaná kolekcia párov kľúčov a hodnôt. V útržku kódu nižšie je prepínač slovná premenná, ktorá drží páry kľúč: hodnota podobná prípadom podobným prepínačom.

Pomocou metódy get () môžeme získať prístup k položke slovníka tak, že argumenty predáme ako kľúč a voliteľnú predvolenú hodnotu. Predvolená hodnota pomáha implementovať „predvolený prípad“ príkazu switch.

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))

Výkon:

V tomto príklade nechajme 6 ako vstupný argument alebo vstupný kľúč, ktorý bude prehľadávaný v klávesoch slovníka (prepínač). Keď sa nájde kľúč = 6, vráti hodnotu ako sobotu. Teraz zadajte 8 ako vstupný kľúč, ktorý bude prehľadávaný v klávesoch slovníka (prepínač). Pretože kľúč = 8 sa nenájde, vráti predvolenú hodnotu ako Neplatný deň.

Príklad č. 3

Implementácia príkazu switch pomocou slovníka mapovania funkcií. Vo vyššie uvedenom príklade sú hodnoty slovníka dátového typu reťazec, tj konštanta. Je však zaujímavé vedieť, že hodnoty slovníka Python môžu byť ľubovoľného typu údajov.

Hodnoty slovníka Python môžu byť konštanty (celé čísla, reťazce), ako aj funkcie. V tomto príklade implementujeme príkaz switch, ktorý bude tiež podporovať funkčné volanie pre každý prípad prepínania pomocou slovníka funkcií, ako je uvedené nižšie.

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))

výkon:

záver

Ako sme videli vyššie, ten istý prípad použitia sa môže implementovať ako príkazom case case, tak aj príkazom lad-if-else-if rebríka. Vyhlásenie spoločnosti Switch poskytuje však lepšiu ovládateľnosť a čitateľnosť kódu ako vyhlásenie rebríčku if-else-if. Tiež sme videli, že jazyk Python nemá žiadne príkazy o prepnutí, ale môžeme ho implementovať efektívnejšie pomocou Python Dictionary.

Odporúčané články

Toto je príručka k príkazu Python Switch. Tu diskutujeme syntax, vývojový diagram a prácu príkazu python switch spolu s príkladmi a implementáciou. Viac informácií nájdete aj v nasledujúcich článkoch

  1. Dedičstvo v Pythone
  2. Preťaženie Pythonu
  3. Slovník v Pythone
  4. Slovník v Pythone

Kategórie: