Switch Case-Anweisungen

PythonBeginner
Jetzt üben

Einführung

In diesem Lab werden wir lernen, wie man den neuen Python-Switch-Case-Ausdruck, auch als strukturelles Mustermatching bekannt, der in Python 3.10 eingeführt wurde, verwendet. Der Switch-Case-Ausdruck ermöglicht es uns, Muster einfacher und lesbarer zuzuordnen als mit den traditionellen if-elif-else-Anweisungen.

Ziele

  • Switch-Case-Anweisungen
  • if-Anweisungen

Vergleich mit Python if-Anweisungen

Bevor wir uns den Beispielen des Python-Switch-Case-Ausdrucks widmen, vergleichen wir ihn mit den traditionellen if-elif-else-Anweisungen.

Betrachten Sie folgendes Beispiel zum Zuordnen von HTTP-Antwortcodes:

response_code = 200

if response_code == 200:
    print("OK")
elif response_code == 404:
    print("404 Not Found")
elif response_code == 500:
    print("Internal Server Error")

Wir können dasselbe Beispiel mit dem Python-Switch-Case-Ausdruck wie folgt umschreiben:

response_code = 201

match response_code:
    case 200:
        print("OK")
    case 404:
        print("404 Not Found")
    case 500:
        print("Internal Server Error")

Wie Sie sehen können, ist der Python-Switch-Case-Ausdruck kürzer und lesbarer als die if-elif-else-Anweisungen.

Hier ist die Syntax für einen Switch-Case-Ausdruck:

match term:
    case pattern-1:
        action-1
    case pattern-2:
        action-2
    case pattern-3:
        action-3
    case _:
        action-default

Der term ist der Wert, gegen den Sie die Muster abgleichen möchten. Das Muster kann ein einzelner Wert, ein Tupel, eine Liste, eine integrierte Klasse oder eine Kombination davon mit dem oder-Operator (|) sein. Das _ ist ein Fallback-Muster, das jedem Wert entspricht.

Zuordnung mit dem or-Muster

In diesem Beispiel erlaubt das Pipe-Zeichen (| oder or) es Python, für zwei oder mehr Fälle die gleiche Antwort zurückzugeben.

response_code = 502
match response_code:
    case 200 | 201:
        print("OK")
    case 500 | 502:
        print("Internal Server Error")

Dies wird "Internal Server Error" ausgeben, da der response_code entweder 500 oder 502 ist.

Wir können das Unterstrich-Symbol _ verwenden, um einen Standardfall zu definieren. Betrachten Sie folgendes Beispiel:

response_code = 800

match response_code:
    case 200 or 201:
        print("OK")
    case 500 or 502:
        print("Internal Server Error")
    case _:
        print("Invalid Code")

In diesem Beispiel wird die Ausgabe "Invalid Code" sein, da der Wert von response_code von keinem der Fälle abgedeckt wird.

Zuordnung integrierter Klassen

Wir können auch Muster auf der Grundlage integrierter Klassen zuordnen. Betrachten Sie folgendes Beispiel:

response_code = ["300"]

match response_code:
    case int():
        print('response_code ist eine Zahl')
    case str():
        print('response_code ist eine Zeichenkette')
    case list():
        print('response_code ist eine Liste')
    case _:
        print('response_code ist ein unbekannter Typ')

Dies wird "response_code ist eine Liste" ausgeben, da der response_code eine Liste ist.

Zusammenfassung

In diesem Lab haben wir gelernt, wie man den in Python 3.10 eingeführten Python-Switch-Case-Ausdruck verwendet. Wir haben ihn mit den traditionellen if-elif-else-Anweisungen verglichen und mehrere Beispiele zum Zuordnen von einzelnen Werten, dem or-Muster, der Länge eines Iterierbaren, dem Unterstrich-Symbol für den Standardfall und integrierter Klassen praktiziert.

Ich hoffe, dass Ihnen dieses Lab gefallen hat und Sie etwas Neues gelernt haben!