Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich eine Case/Switch-Anweisung in Python implementieren?

Wie kann ich eine Case/Switch-Anweisung in Python implementieren?

Susan Sarandon
Susan SarandonOriginal
2024-11-19 10:37:02394Durchsuche

How Can I Implement a Case/Switch Statement in Python?

Pythons Alternative zur Case/Switch-Anweisung

Obwohl Python von Haus aus kein direktes Äquivalent zur Case/Switch-Anweisung bietet, gibt es welche mehrere mögliche Problemumgehungen.

Pattern Matching (Python 3.10 und Oben)

In Python 3.10 wurde der Mustervergleich als vielseitigerer Ersatz für bedingte Anweisungen eingeführt. Mit dieser Funktion können Entwickler einen Wert mit einer Reihe von Mustern vergleichen und entsprechende Codeblöcke ausführen.

Beispiel:

def http_error(status):
    match status:
        case 400:
            return "Bad request"
        case 404:
            return "Not found"
        case 418:
            return "I'm a teapot"
        case _:  # Wildcard case
            return "Something's wrong with the internet"

Wörterbuchbasierter Ansatz (Pre-Python 3.10)

Bevor der Mustervergleich verfügbar war, bestand eine übliche Python-Problemumgehung darin, ein Wörterbuch zu verwenden, um Eingabewerte den entsprechenden Werten zuzuordnen Funktionsblöcke.

Beispiel:

options = {0: zero, 1: sqr, 4: sqr, 9: sqr, 2: even, 3: prime, 5: prime, 7: prime}

def num_type(num):
    options[num]()

Zusätzliche Hinweise:

  • Pattern Matching ist die bevorzugte Lösung in Python 3.10 und höher aufgrund seiner Prägnanz und Flexibilität.
  • Der wörterbuchbasierte Ansatz kann für einfache Anwendungsfälle geeignet sein, bei denen es zu Fehlern kommt Verhalten ist nicht erforderlich.
  • Bibliotheken von Drittanbietern können zusätzliche schalterähnliche Funktionen bereitstellen, sie haben jedoch möglicherweise ihre eigenen Besonderheiten und Einschränkungen.

Das obige ist der detaillierte Inhalt vonWie kann ich eine Case/Switch-Anweisung in Python implementieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn