Einführung in die Python Switch-Anweisung

Eine switch-Anweisung ist eine sehr nützliche und leistungsstarke Programmierfunktion. Es ist eine Alternative zur if-else-if-Kontaktplananweisung und bietet eine bessere Leistung und einen besser verwaltbaren Code als eine if-else-if-Kontaktplananweisung. Die meisten Programmiersprachen (wie Java, C usw.) bieten switch-Anweisungen an, aber die Python-Sprache verfügt über keine switch-Anweisungen. Wenn Sie jedoch case-Anweisungen umschalten möchten, gibt es eine sehr effiziente Möglichkeit, eine switch case-Anweisungsfunktion in Python zu implementieren. Dieses Tutorial hilft Ihnen bei der Implementierung.

Flussdiagramm

Die switch-Anweisung hat in jeder Programmiersprache die gleiche Funktionalität, jedoch eine leicht unterschiedliche Syntax. Die Python-Sprache bietet keine eingebauten switch-Anweisungen. Wir können diese Funktion mit demselben Ablauf und derselben Funktionalität implementieren, jedoch mit unterschiedlicher Syntax und Implementierung unter Verwendung von Python Dictionary.

Syntax der switch-Anweisung

Betrachtet man nur die folgenden zwei verschiedenen Syntax der switch-Anweisung. Die erste Anweisung zeigt die Standardsyntax von switch-Anweisungen in anderen Programmiersprachen wie C, Java usw. Die zweite Anweisung ist die Python-Implementierung der switch-Anweisung. Sie können klar beschreiben, wie ähnlich beide in der Funktionalität, aber in der Implementierung unterschiedlich sind.

1. In andere Sprachen wechseln (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. Wechseln Sie die Implementierung in Python

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

Funktionsweise der switch-Anweisung

  • Die Arbeitsweise der Standard-switch-Anweisung in einer beliebigen Programmiersprache ist ähnlich. Es besteht aus mehreren Fällen, die jeweils eine Codeblock- und eine Unterbrechungsanweisung haben.
  • Das Eingabeargument wird nacheinander mit mehreren Fällen verglichen. Wenn das Argument mit einem der Fälle übereinstimmt, wird die entsprechende Blockanweisung ausgeführt und das Steuerelement kommt aus der switch-Anweisung in der break-Anweisung heraus.
  • Wenn keiner der Fälle mit dem Eingabeargument übereinstimmt, wird die Standardblockanweisung ausgeführt.
  • Bei der Python-Implementierung von switch-Anweisungen wird das Python-Wörterbuch als Schalter und die Schlüssel des Wörterbuchs als Fälle betrachtet. Hier rufen wir die get () - Funktion des Wörterbuchs mit den erforderlichen Argumenten auf, dh der Eingabetaste und einem Standardwert.
  • Wenn der Eingabeschlüssel mit einem der Schlüssel des Wörterbuchs übereinstimmt, wird der entsprechende Wert zurückgegeben. Wenn der Eingabeschlüssel jedoch keinem der Wörterbuchschlüssel entspricht, wird der Standardwert zurückgegeben.

Implementierung der Switch-Anweisung in Python

Wie wir wissen, sind die switch case-Anweisung und die if-else-if-Kontaktplan-Anweisung abwechselnd. Beide können verwendet werden, um den gleichen Zweck zu erreichen, aber eine switch case-Anweisung bietet eine bessere Leistung und einen besser verwaltbaren Code als eine if-else-if-Kontaktplananweisung. Python-Sprache hat keine switch-Anweisungen, aber wir können eine ähnliche Funktionalität mit Python Dictionary implementieren.

Im folgenden Abschnitt sehen wir die Implementierung von jedem mit Beispiel.

Beispiel 1

Verwendung der If-else-If-Leiter - Eine Alternative zum Umschalten der case-Anweisung. In diesem Beispiel haben wir die If-else-If-Ladder-Anweisung verwendet, um den Wochentag abzurufen. Für den gleichen Anwendungsfall sehen wir auch die Implementierung des Schaltzustands in Python.

Code:

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

Ausgabe:

Beispiel # 2

Implementierung der switch-Anweisung mit Dictionary of Strings. Python-Sprache hat keine switch-Anweisungen. Wir können jedoch eine switch-Anweisungsfunktion in Python mithilfe von Dictionary wie folgt effizient implementieren.

Erläuterung: Dictionary in Python ist eine ungeordnete Sammlung von Schlüssel- und Wertepaaren. Im folgenden Code-Snippet ist der Switcher eine Wörterbuchvariable, die Schlüssel-Wert-Paare enthält, ähnlich wie bei switch-ähnlichen Fällen.

Mit der Methode get () können wir auf das Element des Wörterbuchs zugreifen, indem wir die Argumente als Schlüssel und den optionalen Standardwert übergeben. Der Standardwert hilft bei der Implementierung des 'Standardfalls' einer switch-Anweisung.

Code:

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

Ausgabe:

Lassen Sie uns in diesem Beispiel 6 als Eingabeargument oder Eingabeschlüssel übergeben, der in den Schlüsseln des Wörterbuchs (Switcher) gesucht wird. Wenn der Schlüssel = 6 gefunden wird, wird der Wert als Samstag zurückgegeben. Übergeben Sie nun 8 als Eingabetaste, die in den Schlüsseln des Wörterbuchs (Switcher) gesucht wird. Da der Schlüssel = 8 nicht gefunden wird, wird der Standardwert als Ungültiger Tag zurückgegeben.

Beispiel # 3

Implementierung der switch-Anweisung mittels Dictionary-Mapping von Funktionen. Im obigen Beispiel sind die Werte des Wörterbuchs vom Datentyp string, dh konstant. Es ist jedoch interessant zu wissen, dass die Werte eines Python-Wörterbuchs von einem beliebigen Datentyp sein können.

Die Werte eines Python-Wörterbuchs können sowohl Konstanten (Ganzzahlen, Zeichenfolgen) als auch Funktionen sein. In diesem Beispiel implementieren wir die switch-Anweisung, die auch den Funktionsaufruf für jeden Schalterfall unterstützt, indem wir das unten stehende Funktionswörterbuch verwenden.

Code:

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

Ausgabe:

Fazit

Wie wir oben gesehen haben, kann der gleiche Anwendungsfall sowohl durch die switch case-Anweisung als auch durch die if-else-if-Kontaktplananweisung implementiert werden. Die Anweisung von Switch bietet jedoch einen besser verwaltbaren und lesbaren Code als die Anweisung if-else-if ladder. Wir haben auch gesehen, dass die Python-Sprache keine switch-Anweisungen hat, aber wir können sie mit Python Dictionary effizienter implementieren.

Empfohlene Artikel

Dies ist eine Anleitung zur Python Switch-Anweisung. Hier werden Syntax, Ablaufdiagramm und Funktionsweise der Python-switch-Anweisung zusammen mit Beispielen und der Implementierung erläutert. Sie können sich auch die folgenden Artikel ansehen, um mehr zu erfahren.

  1. Vererbung in Python
  2. Python-Überladung
  3. Wörterbuch in Python
  4. Wörterbuch in Python