Grundlagen von match und case
Anhand von Wertmustern verzweigen
Grundlagen von match und case ist eine kostenlose Python Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Python Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Python Academy-Kurs umfasst insgesamt 4 Lektionen.
Strukturelles Pattern Matching
Python 3.10 führte strukturelles Pattern Matching mit der match-Anweisung ein. Dabei wird ein Wert mit einer Reihe von Patterns verglichen und der erste passende Case ausgeführt – deutlich leistungsfähiger als verkettete if/elif-Anweisungen.
Grundlegende Syntax
Schreiben Sie match, gefolgt vom Prüfwert, und anschließend einen oder mehrere case-Blöcke. Der erste passende Case wird ausgeführt.
command = 'start'
match command:
case 'start':
print('Starting up')
case 'stop':
print('Shutting down')
# prints: Starting upLiterale abgleichen
Die einfachsten Patterns sind Literalwerte: Zahlen, Zeichenketten, True, False und None. Sie passen, wenn der Prüfwert dem Literal entspricht.
code = 404
match code:
case 200:
print('OK')
case 404:
print('Not Found')
case 500:
print('Server Error')Das Wildcard-Pattern _
Der Unterstrich _ ist ein Wildcard-Pattern, das auf alles passt. Setzen Sie ihn wie else an die letzte Stelle, um einen Auffangfall zu definieren.
code = 418
match code:
case 200:
print('OK')
case _:
print('Unknown status')Mit OR kombinieren
Verwenden Sie den Operator | innerhalb eines Cases, um auf eines von mehreren Patterns zu prüfen.
code = 301
match code:
case 200 | 201 | 204:
print('Success')
case 301 | 302:
print('Redirect')
case _:
print('Other')Den Wert erfassen
Ein allein stehender Name in einem Pattern erfasst den Prüfwert in dieser Variablen. Verwenden Sie ihn, wenn Sie einen Auffangfall benötigen, den Wert aber trotzdem behalten möchten.
value = 42
match value:
case 0:
print('zero')
case other:
print('got', other)Die Reihenfolge ist wichtig
Cases werden von oben nach unten geprüft, und der erste Treffer gewinnt. Ein zu früh platziertes, weit gefasstes Capture-Pattern verdeckt spätere, spezifischere Cases.
x = 5
match x:
case n: # matches everything first!
print('caught by capture')
case 5:
print('this never runs')Match liefert nichts zurück
match ist eine Anweisung und kein Ausdruck und liefert daher keinen Wert zurück. Setzen Sie innerhalb der Cases eine Variable, wenn Sie ein Ergebnis benötigen.
day = 6
label = ''
match day:
case 0 | 6:
label = 'weekend'
case _:
label = 'weekday'
print(label)None abgleichen
Sie können None direkt abgleichen. Das ist übersichtlicher als eine ausdrückliche Prüfung mit is None innerhalb einer Kette.
def describe(value):
match value:
case None:
return 'nothing'
case _:
return 'something: ' + str(value)
print(describe(None))
print(describe(7))Ein praktischer Dispatcher
Pattern Matching eignet sich besonders gut als Command-Dispatcher und verwandelt eine lange if-Kette in eine übersichtliche Tabelle von Cases.
def handle(cmd):
match cmd:
case 'help':
return 'Showing help'
case 'quit' | 'exit':
return 'Goodbye'
case _:
return 'Unknown command'
print(handle('exit'))
print(handle('foo'))True, False und None abgleichen
Die Konstanten True, False und None werden anhand ihrer Identität und nicht ihrer Gleichheit abgeglichen. Dadurch eignen sie sich zuverlässig als einzelne Werte für Verzweigungen.
def report(flag):
match flag:
case True:
return 'enabled'
case False:
return 'disabled'
case None:
return 'unset'
print(report(True))
print(report(None))Kurze Überprüfung
Was bewirkt das Wildcard-Pattern _ in einer match-Anweisung?
Zusammenfassung
Sie haben gelernt, anhand von Wert-Patterns zu verzweigen.
matchprüft Cases von oben nach unten; der erste Treffer gewinnt.- Gleichen Sie Literale ab, verwenden Sie
_als Auffangfall und kombinieren Sie Patterns mit|. - Ein allein stehender Name erfasst den Wert.
matchist eine Anweisung und kein Ausdruck.
Häufig gestellte Fragen
Ist die Lektion „Grundlagen von match und case“ kostenlos?
Ja — der vollständige Text von „Grundlagen von match und case“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Python Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Python Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Grundlagen von match und case“?
Anhand von Wertmustern verzweigen Du übst Python Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Python Academy zu starten?
Keine Vorkenntnisse erforderlich. Python Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „Grundlagen von match und case“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Python Academy-Lektion Code schreiben und ausführen?
Ja. Jede Python Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Grundlagen von match und case
- Sequenzen und Mappings abgleichen
- Klassenmuster
- Guards und Wildcards