Wprowadzenie do instrukcji Switch Python

Instrukcja switch jest bardzo przydatną i potężną funkcją programowania. Jest to alternatywa dla instrukcji drabinkowej if-else-if i zapewnia lepszą wydajność i łatwiejszy do zarządzania kod niż instrukcja drabinkowa if-else-if. Większość języków programowania (takich jak Java, C itp.) Oferuje instrukcje przełączania, ale język Python nie ma żadnych instrukcji przełączania. Jednak jeśli lubisz przełączać instrukcje, istnieje bardzo wydajny sposób na implementację funkcji instrukcji przełączania w Pythonie. Ten samouczek pomoże Ci go wdrożyć.

Schemat blokowy

Instrukcja switch w każdym języku programowania ma tę samą funkcjonalność, ale nieco inną składnię. Język Python nie udostępnia żadnych wbudowanych instrukcji switch. Możemy zaimplementować tę funkcję z tym samym przepływem i funkcjonalnością, ale z inną składnią i implementacją przy użyciu Python Dictionary.

Składnia instrukcji Switch

Wystarczy spojrzeć na dwie różne składnie instrukcji switch. Pierwsza instrukcja pokazuje standardową składnię instrukcji switch w innych językach programowania, takich jak C, Java itp. Druga instrukcja to implementacja instrukcji Switch w Pythonie. Możesz wyraźnie powiązać, jak oba są podobne pod względem funkcjonalności, ale różnią się implementacją.

1. Przełącz na inne języki (c, Java, ..)

Składnia:

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. Przełącz implementację w Pythonie

Składnia:

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

Działanie instrukcji Switch

  • Działanie standardowej instrukcji switch w dowolnym języku programowania jest podobne. Składa się z wielu przypadków, z których każdy ma blok kodu i instrukcję break.
  • Argument wejściowy jest porównywany z wieloma przypadkami jeden po drugim. Jeśli argument pasuje do dowolnego z przypadków, wówczas wykonywana jest odpowiednia instrukcja blokowa, a kontrola wychodzi z instrukcji switch w instrukcji break.
  • Jeśli żadna ze spraw nie pasuje do argumentu wejściowego, wykonywana jest domyślna instrukcja blokowa.
  • W implementacji instrukcji switch w Pythonie uważamy słownik Python za przełącznik i klucze słownika jako przypadki. Tutaj wywołujemy funkcję get () słownika z wymaganymi argumentami, tj. Kluczem wejściowym i wartością domyślną.
  • Jeśli klucz wejściowy jest zgodny z dowolnym klawiszem słownika, zwracana jest odpowiednia wartość. Jeśli jednak klucz wejściowy nie pasuje do żadnego z kluczy słownika, zostanie zwrócona wartość domyślna.

Implementacja instrukcji Switch w Pythonie

Jak wiemy, instrukcja case switch i instrukcja drabinkowa if-else-if są alternatywne. Oba mogą być użyte do osiągnięcia tego samego celu, ale instrukcja case case zapewnia lepszą wydajność i łatwiejszy do zarządzania kod niż instrukcja drabinkowa if-else-if. Język Python nie ma żadnych instrukcji switch, ale możemy zaimplementować podobną funkcjonalność za pomocą Python Dictionary.

W następnej sekcji zobaczymy implementację każdego z przykładem.

Przykład 1

Korzystanie z drabiny if-else-if - Alternatywa do instrukcji zmiany wielkości liter. W tym przykładzie użyliśmy instrukcji drabinowej if-else-if, aby uzyskać dzień tygodnia. W tym samym przypadku zobaczymy również implementację stanu przełącznika w Pythonie.

Kod:

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

Wynik:

Przykład nr 2

Implementacja instrukcji switch za pomocą Dictionary of Strings. Język Python nie ma żadnych instrukcji przełączania. Możemy jednak skutecznie zaimplementować funkcję instrukcji switch w Pythonie, używając Dictionary jak poniżej.

Objaśnienie: Słownik w Pythonie jest nieuporządkowanym zbiorem par klucz i wartość. W poniższym fragmencie kodu przełącznik jest zmienną słownikową, która trzyma klucz: pary wartości podobne do przypadków podobnych do przełącznika.

Za pomocą metody get () możemy uzyskać dostęp do elementu słownika, przekazując argumenty jako klucz i opcjonalną wartość domyślną. Wartość domyślna pomaga wdrożyć „domyślny przypadek” instrukcji switch.

Kod:

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

Wynik:

W tym przykładzie przekażmy 6 jako argument wejściowy lub klucz wejściowy, który będzie przeszukiwany w kluczach słownika (przełączniku). Gdy klucz = 6 zostanie znaleziony, wówczas zwróci wartość jako sobota. Teraz podaj 8 jako klawisz wprowadzania, który będzie przeszukiwany w klawiszach słownika (przełącznika). Ponieważ klucz = 8 nie zostanie znaleziony, wówczas zwróci wartość domyślną jako Nieprawidłowy dzień.

Przykład nr 3

Implementacja instrukcji switch za pomocą mapowania słownikowego funkcji. W powyższym przykładzie wartości słownika są typu danych ciąg, tzn. Stały. Interesujące jest jednak to, że wartości słownika Python mogą być dowolnego typu danych.

Wartościami słownika Python mogą być stałe (liczby całkowite, ciągi znaków), a także funkcje. W tym przykładzie zaimplementujemy instrukcję switch, która będzie również obsługiwać wywołanie funkcji dla każdego przypadku przełącznika, używając słownika funkcji jak poniżej.

Kod:

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

wynik:

Wniosek

Jak widzieliśmy powyżej, ten sam przypadek użycia może być zaimplementowany zarówno przez instrukcję case switch, jak i instrukcję drabinkową if-else-if. Ale instrukcja Switcha zapewnia łatwiejszy do zarządzania i czytelniejszy kod niż instrukcja drabinkowa if-else-if. Widzieliśmy również, że język Python nie ma żadnych instrukcji przełączania, ale możemy to samo zaimplementować w bardziej wydajny sposób za pomocą Python Dictionary.

Polecane artykuły

Jest to przewodnik po instrukcji Python Switch. Tutaj omawiamy składnię, schemat blokowy i działanie instrukcji przełączania python wraz z przykładami i implementacją. Możesz także przejrzeć następujące artykuły, aby dowiedzieć się więcej-

  1. Dziedziczenie w Pythonie
  2. Przeciążenie Pythona
  3. Słownik w Pythonie
  4. Słownik w Pythonie