Uvod u Python Switch izjavu

Izjava o prebacivanju vrlo je korisna i moćna programska značajka. To je alternativa if-else-if izvodu ljestvice i omogućuje bolje performanse i upravljiviji kôd od izjave ljestvice if-else-if. Većina programskih jezika (kao što su Java, C itd.) Nude izjave o prebacivanju, ali Python jezik nema nijedan izraz preklapanja. Međutim, ako želite prebaciti izjave o velikim slučajevima, u Pythonu postoji vrlo učinkovit način implementacije značajke iskaza slučaja prebacivanja. Ovaj će vam vodič pomoći da ga implementirate.

Dijagram toka

Izjava o prebacivanju u svakom programskom jeziku ima istu funkcionalnost, ali nešto drugačiju sintaksu. Python jezik ne daje nikakve ugrađene izjave o prebacivanju. Ovu značajku možemo implementirati s istim protokom i funkcionalnošću, ali s različitom sintaksom i implementacijom pomoću Python rječnika.

Sintaksa izjave preklopnika

Dovoljno je pogledati donje dvije različite sintakse izjave o prebacivanju. Prva izjava pokazuje standardnu ​​sintaksu izjava o prebacivanju na drugim programskim jezicima kao što su C, Java, itd. Druga izjava je implementacija Python-ove izjave Switch. Jasno možete odrediti kako su obje slične u funkciji, ali različite u implementaciji.

1. Prebacite se na druge jezike (c, Java, ..)

Sintaksa:

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. Prebacite implementaciju u Python

Sintaksa:

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

Rad na izjavi prekidača

  • Rad standardne izjave preklopnika u bilo kojem programskom jeziku je sličan. Sastoji se od više slučajeva, a svaki ima blok koda i izjavu o prekidu.
  • Argument unosa uspoređuje se s više slučajeva jedan za drugim. Ako se argument podudara s bilo kojim slučajem, tada se izvršava odgovarajuća izjava bloka i kontrola izlazi iz izjave prekidača u izjavi break.
  • Ako se nijedan slučaj ne podudara s ulaznim argumentom, tada se izvršava zadani blok izraz.
  • U Python-ovoj implementaciji preklopnih izjava, Python rječnik smatramo prekidačem, a ključeve rječnika kao slučajeve. Ovdje zovemo get () funkciju rječnika sa potrebnim argumentima, tj. Ulaznim ključem i zadanom vrijednosti.
  • Ako se tipka za unos podudara s bilo kojom tipkom u rječniku, vraća se odgovarajuća vrijednost. Međutim, ako se tipka za unos ne podudara s bilo kojom tipkom iz rječnika, tada će se vratiti zadana vrijednost.

Implementacija Switch izjave u Pythonu

Kao što znamo, izjava kućišta prekidača i izjava ljestvice if-else-if su naizmjenično jedni drugima. Oba se mogu koristiti za postizanje iste svrhe, ali izjava slučaja prekidača omogućuje bolje performanse i upravljiviji kôd od naredbe ljestvice ako-else-if. Python jezik nema nijedan iskaz prebacivanja, ali sličnu funkcionalnost možemo implementirati koristeći Python Dictionary.

U slijedećem odjeljku vidjet ćemo implementaciju svakog s primjerom.

Primjer 1

Korištenje ljestvice ako-drugo-ako - Alternativa za prebacivanje izjave slučaja. U ovom primjeru koristili smo izjavu ljestvice if-else-if da bismo dobili dan u tjednu. Za isti slučaj korištenja vidjet ćemo i implementaciju prekidačkog stanja u Pythonu.

Kodirati:

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

Izlaz:

Primjer 2

Implementacija prekidača pomoću Rječnika. Python jezik nema nijedan izraz prebacivanja. Međutim, na Python-u možemo učinkovito implementirati značajku prekidača koristeći rječnik kao što je dolje navedeno.

Objašnjenje: Rječnik u Python-u je neuređena zbirka parova ključeva i vrijednosti. U isječku koda ispod, sklopka je varijabla rječnika koja se drži tipkom: parovi vrijednosti slični slučajevima sličnim prekidačima.

Korištenjem metode get (), možemo pristupiti stavki rječnika tako što ćemo proslijediti argumente kao ključ i neobaveznu zadanu vrijednost. Zadana vrijednost pomaže u implementaciji 'zadanog slučaja' izjave o preklopu.

Kodirati:

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

Izlaz:

U ovom ćemo primjeru prenijeti 6 kao ulazni argument ili ulazni ključ koji ćemo pretraživati ​​u ključevima rječnika (preklopnika). Kako se nađe ključ = 6, vratit će vrijednost kao subota. Sada pronesite 8 kao ulazni ključ koji ćete pretraživati ​​u tipkama rječnika (skretnice). Kako ključ = 8 nije pronađen, vratit će zadanu vrijednost kao Nevažeći dan.

Primjer 3

Implementacija prekidačke izjave pomoću rječnika mapiranja funkcija. U gornjem primjeru, vrijednosti rječnika su vrste podataka tipa, tj. Konstantne. Ali zanimljivo je znati da vrijednosti Python rječnika mogu biti bilo koje vrste podataka.

Vrijednosti Python rječnika mogu biti konstante (cijeli brojevi, žice) kao i funkcije. U ovom ćemo primjeru implementirati izjavu prekidača koja će također podržavati poziv funkcije za svaki slučaj prekidača koristeći rječnik funkcija kao što je dolje.

Kodirati:

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

izlaz:

Zaključak

Kao što smo vidjeli gore, isti slučaj upotrebe može se implementirati i izjavom slučaja prekidača i naredbom ljestvice if-else-if. Ali Switch-ova izjava pruža pristupačniji i čitljiviji kod nego if-else-if izjava ljestvice. Također smo vidjeli da Python jezik nema nijednu izjavu o prebacivanju, ali to možemo implementirati na učinkovitiji način koristeći Python Dictionary.

Preporučeni članci

Ovo je vodič za Python Switch izjavu. Ovdje smo raspravljali o sintaksi, dijagramu tijeka i radu iskaza python switch, zajedno s primjerima i implementacijom. Možete pogledati i sljedeće članke da biste saznali više -

  1. Nasljeđivanje u Pythonu
  2. Python preopterećenje
  3. Rječnik na Pythonu
  4. Rječnik na Pythonu

Kategorija: