Úvod do příkazu Python Switch

Příkaz switch je velmi užitečná a výkonná programovací funkce. Jedná se o alternativu k příkazu žebříku if-else-if a poskytuje lepší výkon a spravovatelnější kód než příkaz žebříku if-else-if. Většina programovacích jazyků (jako Java, C atd.) Nabízí příkazy pro přepínání, ale jazyk Python nemá žádné příkazy pro přepínání. Pokud však chcete přepínat příkazy typu case, existuje velmi efektivní způsob implementace funkce příkazu case case v Pythonu. Tento tutoriál vám pomůže s implementací.

Vývojový diagram

Příkaz přepínače v každém programovacím jazyce má stejnou funkcionalitu, ale mírně odlišnou syntaxi. Jazyk Python neposkytuje žádné vestavěné příkazy přepínače. Tuto funkci můžeme implementovat se stejným tokem a funkčností, ale s odlišnou syntaxí a implementací pomocí Python Dictionary.

Syntaxe příkazu Switch

Jen se podíváme na níže dvě různé syntaxe příkazu switch. První příkaz ukazuje standardní syntaxi příkazů switch v jiných programovacích jazycích, jako je C, Java atd. Druhým příkazem je implementace příkazu Switch v Pythonu. Jasně můžete určit, jak jsou obě funkce podobné, ale liší se implementací.

1. Přepnout do jiných jazyků (c, Java, ..)

Syntax:

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. Implementace přepínačů v Pythonu

Syntax:

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

Práce s příkazem Switch

  • Funkce standardního příkazu přepínače v libovolném programovacím jazyce je podobná. Skládá se z více případů, z nichž každý má kódový blok a příkaz break.
  • Argument vstupu je porovnán s více případy jeden po druhém. Pokud se argument shoduje s kterýmkoli z případů, provede se odpovídající příkaz bloku a řízení vychází z příkazu switch v příkazu break.
  • Pokud se žádný případ neshoduje s argumentem vstupu, provede se výchozí příkaz bloku.
  • Při implementaci příkazů přepínače v Pythonu považujeme slovník Python za přepínač a klíče slovníku jako případy. Zde nazýváme funkci get () slovníku s požadovanými argumenty, tj. Vstupním klíčem a výchozí hodnotou.
  • Pokud se vstupní klíč shoduje s některou z kláves ve slovníku, vrátí se odpovídající hodnota. Pokud však vstupní klíč neodpovídá žádnému ze slovníků, bude vrácena výchozí hodnota.

Implementace příkazu Switch v Pythonu

Jak víme, příkaz case case a if-else-if ladder jsou vzájemně alternativní. Oba lze použít k dosažení stejného účelu, ale příkaz case case poskytuje lepší výkon a spravovatelnější kód než příkaz žebříku if-else-if. Jazyk Python nemá žádné příkazy pro přepínání, ale podobnou funkčnost můžeme implementovat pomocí Python Dictionary.

V následující části se podíváme na implementaci každého příkladu.

Příklad č. 1

Použití žebříku if-else-if - alternativa k přepnutí případu. V tomto příkladu jsme použili prohlášení žebříku if-else-if k získání dne v týdnu. Pro stejný případ použití také uvidíme implementaci stavu přepínače v Pythonu.

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ýstup:

Příklad č. 2

Implementace příkazu switch pomocí slovníku řetězců. Jazyk Python nemá žádné příkazy přepínače. Funkci příkazu switch v Pythonu však můžeme efektivně implementovat pomocí Slovníku, jak je uvedeno níže.

Vysvětlení: Slovník v Pythonu je neuspořádaná kolekce párů klíčů a hodnot. V úryvku kódu níže je přepínač slovní proměnnou, která drží páry klíč: hodnota podobná případům podobným přepínači.

Pomocí metody get () můžeme přistupovat k položce slovníku předáním argumentů jako klíče a volitelné výchozí hodnoty. Výchozí hodnota pomáhá implementovat „výchozí případ“ pří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ýstup:

V tomto příkladu předáme 6 jako vstupní argument nebo vstupní klíč, který bude prohledáván v klávesách slovníku (přepínač). Jakmile je nalezen klíč = 6, vrátí hodnotu jako sobotu. Nyní předejte 8 jako vstupní klíč, který bude hledán v klávesách slovníku (přepínač). Protože klíč = 8 nebyl nalezen, vrátí výchozí hodnotu jako Neplatný den.

Příklad č. 3

Implementace příkazu switch pomocí slovníkového mapování funkcí. Ve výše uvedeném příkladu jsou hodnoty slovníku datového typu řetězec, tj. Konstanta. Je však zajímavé vědět, že hodnoty slovníku Python mohou být jakéhokoli typu dat.

Hodnoty slovníku Python mohou být konstanty (celá čísla, řetězce) i funkce. V tomto příkladu implementujeme příkaz switch, který bude také podporovat volání funkcí pro každý případ switch pomocí slovníku funkcí, jak je uvedeno níže.

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ýstup:

Závěr

Jak jsme viděli výše, stejný případ použití lze implementovat příkazem case case a if-else-if ladder. Příkaz společnosti Switch však poskytuje lépe ovladatelný a čitelnější kód než příkaz žebříčku if-else-if. Viděli jsme také, že jazyk Python nemá žádné příkazy o přepnutí, ale můžeme je implementovat efektivněji pomocí Python Dictionary.

Doporučené články

Toto je průvodce příkazem Python Switch. Zde diskutujeme syntaxi, vývojový diagram a práci příkazu python switch spolu s příklady a implementací. Další informace naleznete také v následujících článcích

  1. Dědičnost v Pythonu
  2. Přetížení Pythonu
  3. Slovník v Pythonu
  4. Slovník v Pythonu

Kategorie: