0Pricing
Python Academy · Lektion

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 up

Literale 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.

  • match prü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.
  • match ist 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

  1. Grundlagen von match und case
  2. Sequenzen und Mappings abgleichen
  3. Klassenmuster
  4. Guards und Wildcards
← Zurück zu Python Academy