Titelbild für Python-Operatoren und Entscheidungsfindung: if, elif, else und match

Auf einen Blick

Lesezeit

~200 Wörter/Min.

Veröffentlicht

vor 1 Monat

Jun 13, 2026 · Aktualisiert Jul 2, 2026

Aufrufe

217

Gesamt

Python-Operatoren und Entscheidungsfindung: if, elif, else und match

In Teil 1 liefen Ihre Programme von oben nach unten, jede Zeile, jedes Mal. Echte Programme funktionieren nicht so. Sie prüfen eine Bedingung und nehmen den einen oder anderen Weg: Ist das Passwort korrekt, ist der Warenkorb leer, reicht die Punktzahl für eine Auszeichnung? Diese Lektion verleiht Ihrem Code diese Fähigkeit. Sie lernen die gesamte Palette der Python-Operatoren kennen, wie die Sprache entscheidet, was als wahr gilt, und die drei Werkzeuge für Verzweigungen: die klassische if-elif-else-Leiter, den bedingten Ausdruck für Einzeiler und die moderne match-Anweisung, die mit Python 3.10 eingeführt wurde.

Dies ist auch die Lektion, in der Pythons bekanntestes Merkmal von einer Kuriosität zur Grammatik wird, die Sie anwenden: die Einrückung. Jedes Verzweigungskonstrukt erzeugt einen Block, und in Python wird ein Block dadurch definiert, wie weit seine Zeilen eingerückt sind. Gewöhnen Sie sich hier daran, dann wird sich der Rest des Kurses, in dem Blöcke in Funktionen und diese wiederum in Klassen verschachtelt werden, natürlich und nicht pingelig anfühlen.

Was Sie in Teil 2 lernen werden

  • Arithmetische, Zuweisungs- und Vergleichsoperatoren, einschließlich verketteter Vergleiche
  • Boolesche Logik mit and, or und not sowie Kurzschlussauswertung
  • Truthiness: Was Python über True und False hinaus als wahr und falsch behandelt
  • Wie Einrückung Blöcke definiert, präzise und ohne Ausnahmen
  • Verzweigungen mit if, elif und else sowie einzeilige bedingte Ausdrücke
  • Strukturelles Pattern Matching mit match und case

Hinweis

Bevor Sie beginnen

Sie sollten mit Variablen, den grundlegenden Datentypen und F-Strings aus Teil 1 vertraut sein. Jedes Beispiel unten läuft im Playground weiter unten auf der Seite; halten Sie ihn also in einem zweiten Tab geöffnet, wenn Sie beim Lesen gerne experimentieren.

1. Arithmetische und Zuweisungsoperatoren, vervollständigt

Teil 1 stellte die arithmetischen Operatoren nur am Rande vor; hier ist das vollständige Bild. Addition, Subtraktion und Multiplikation verhalten sich wie erwartet. Die Division mit einem einzelnen Schrägstrich liefert immer einen Float, selbst wenn das Ergebnis ganzzahlig ist, denn Python weigert sich, stillschweigend Genauigkeit zu opfern. Der doppelte Schrägstrich führt eine Ganzzahldivision durch, die auf die nächste ganze Zahl abrundet, und das Prozentzeichen liefert den Rest dieser Division. Zwei Sternchen potenzieren. Der Restoperator ist der unbesungene Held dieser Gruppe: Ob eine Zahl gerade ist, das zyklische Durchlaufen eines festen Bereichs und die klassische FizzBuzz-Frage im Vorstellungsgespräch hängen alle von ihm ab.

print(17 / 5)    # 3.4   true division, always float
print(17 // 5)   # 3     floor division
print(17 % 5)    # 2     remainder
print(17 % 2)    # 1     odd number, remainder 1; even numbers give 0
print(3 ** 4)    # 81    power

# Augmented assignment rewrites the variable in place
score = 10
score += 5       # same as score = score + 5
score *= 2       # same as score = score * 2
print(score)     # 30

Die kombinierten Zuweisungsoperatoren +=, -=, *= und Co. sind reine Bequemlichkeit, aber Sie werden sie in jeder Python-Datei sehen, die je geschrieben wurde; machen Sie sie sich also jetzt zur Gewohnheit. Eine weitere Operatorenfamilie, die man früh kennenlernen sollte: Zeichenketten reagieren ebenfalls auf + und *. Zwei Strings mit + zu verknüpfen, klebt sie zusammen, und einen String mit einer ganzen Zahl zu multiplizieren, wiederholt ihn. Python wird jedoch niemals einen String mit einer Zahl addieren; wie Sie in Teil 1 auf die harte Tour gelernt haben, löst es einen TypeError aus und sagt Ihnen genau, warum.

2. Vergleiche und ein Python-Partytrick

Vergleichsoperatoren stellen Fragen über Werte und antworten immer mit einem booleschen Wert. Sie haben Gleichheit ==, Ungleichheit != und die vier Ordnungsrelationen <, <=, >, >=. Sie funktionieren mit Zahlen, mit Strings (alphabetische Reihenfolge, wobei alle Großbuchstaben vor allen Kleinbuchstaben einsortiert werden) und mit den meisten Dingen, die Sie später kennenlernen werden. Das doppelte Gleichheitszeichen verdient Respekt: Es mit der einfachen Zuweisung = zu verwechseln, ist der klassische Anfängerfehler, obwohl Python es zumindest ablehnt, eine Zuweisung innerhalb einer if-Bedingung zuzulassen, und den Fehler so in einen sichtbaren Fehler statt in einen stillen verwandelt.

age = 19
print(age == 19)        # True
print(age != 21)        # True
print("apple" < "banana")  # True, alphabetical

# Chained comparisons read like math
print(18 <= age < 65)   # True: age is between 18 and 64

Diese letzte Zeile ist der Partytrick. Die meisten Sprachen zwingen Sie, age >= 18 and age < 65 zu schreiben. Python erlaubt Ihnen, Vergleiche genau so zu verketten, wie es die Mathematik tut, und die verkettete Form ist sowohl kürzer als auch schwerer falsch zu machen. Verwenden Sie sie immer dann, wenn Sie prüfen, ob ein Wert in einem Bereich liegt.

3. Boolesche Logik und das Konzept der Truthiness

Bedingungen werden mit drei Schlüsselwörtern kombiniert: and, or und not. Ein and-Ausdruck ist nur dann wahr, wenn beide Seiten wahr sind; ein or-Ausdruck ist wahr, wenn mindestens eine Seite wahr ist; not kehrt seinen Operanden um. Python wertet diese träge aus, ein Verhalten, das Kurzschlussauswertung genannt wird: In a and b wird b nie angesehen, wenn a bereits falsch ist, und in a or b wird b übersprungen, wenn a wahr ist. Das ist nicht nur eine Optimierung. Code wie balance > 0 and price / balance < 0.5 verlässt sich darauf: Wenn der Kontostand null ist, wird die gefährliche Division auf der rechten Seite niemals ausgeführt.

Python erweitert wahr und falsch über die beiden booleschen Werte hinaus, und die Regel ist es wert, einmal auswendig gelernt zu werden, denn sie ändert sich nie. Die Zahl null, der leere String, die leere Liste, das leere Dictionary und None zählen in einer Bedingung alle als falsch. Alles andere zählt als wahr. Pythonischer Code stützt sich ständig darauf: if name: liest sich wie „wenn ein Name angegeben wurde“, und if not items: liest sich wie „wenn die Liste leer ist“. Sie werden genau diese beiden Zeilen in Ihrer Karriere hunderte Male schreiben.

name = ""
items = [1, 2, 3]

if not name:
    print("No name given")          # runs: empty string is falsy
if items:
    print(f"{len(items)} items")    # runs: non-empty list is truthy

logged_in = True
is_admin = False
print(logged_in and is_admin)       # False
print(logged_in or is_admin)        # True
print(not is_admin)                 # True

Kontrollpunkt

Was ergibt bool("False")?

Werbung

4. Einrückung: Wie Python einen Block definiert

Nun zur Grammatik, die Verzweigungen ermöglicht. Ein Block in Python ist eine Gruppe von Anweisungen, die zu einer Kopfzeile gehören, und die Zugehörigkeit wird durch Einrückung festgelegt. Die Kopfzeile endet mit einem Doppelpunkt, und jede Zeile, die eine Ebene tiefer eingerückt ist, gehört dazu. Der Block endet bei der ersten Zeile, die wieder die ursprüngliche Einrückungstiefe hat. Die allgemeine Konvention sind vier Leerzeichen pro Ebene, und jeder ernsthafte Editor fügt sie ein, wenn Sie die Tabulatortaste drücken. Die einzige wirkliche Regel ist Konsistenz: Tabs und Leerzeichen in einer Datei zu mischen ist ein Fehler, und die Einrückungsbreite mitten in der Datei zu ändern, ist ein Verbrechen an der Lesbarkeit.

Wenn Sie schon in anderen Sprachen programmiert haben, ersetzt dies geschweifte Klammern, und nach einem Tag werden Sie sie nicht vermissen. Wenn Python Ihre erste Sprache ist, haben Sie es am einfachsten: Die visuelle Struktur, die Sie natürlicherweise verwenden würden, um Code übersichtlich zu halten, ist schlicht das Gesetz. Wenn Python sich über einen IndentationError oder eine unerwartete Einrückung beschwert, sagt es Ihnen, dass die Form Ihres Codes nicht Ihrer Absicht entspricht, und die Lösung besteht immer darin, den Block korrekt auszurichten.

5. if, elif und else

Die if-Anweisung wertet eine Bedingung aus und führt ihren Block nur dann aus, wenn die Bedingung truthy ist. Ein optionaler else-Block fängt den anderen Fall ab. Dazwischen können Sie beliebig viele elif-Zweige einfügen: kurz für else if -, die der Reihe nach geprüft werden, bis einer zutrifft. Genau ein Zweig der Leiter wird jemals ausgeführt, und die Reihenfolge der elifs ist daher entscheidend: Setzen Sie die spezifischsten Tests an den Anfang. Hier ein vollständiges, realistisches Beispiel: die Notengrenzenlogik, wie sie praktisch jede Schule auf der Welt verwendet.

score = 73

if score >= 75:
    grade = "A"
elif score >= 65:
    grade = "B"
elif score >= 50:
    grade = "C"
elif score >= 35:
    grade = "S"
else:
    grade = "F"

print(f"Score {score} earns grade {grade}")   # Score 73 earns grade B

Gehen Sie die Leiter mit der Punktzahl 73 durch. Der erste Test schlägt fehl, weil 73 unter 75 liegt. Der zweite Test ist erfolgreich, grade wird auf B gesetzt, und der Rest der Leiter wird komplett übersprungen. Deshalb bekommen die späteren, lockereren Bedingungen nie die Chance, das Ergebnis zu überschreiben. Wenn Sie die Reihenfolge umkehren und zuerst auf score >= 35 prüfen, würde jede bestandene Punktzahl auf S landen. Wenn eine Leiter sich falsch verhält, simulieren Sie sie genau so von Hand, von oben nach unten, und der Fehler offenbart sich fast immer in Sekunden.

Für winzige Entscheidungen bietet Python einen bedingten Ausdruck, der in eine Zeile passt: wert_wenn_wahr if bedingung else wert_wenn_falsch. Er glänzt bei einfachen Zuweisungen wie label = "even" if n % 2 == 0 else "odd" und wird unlesbar, sobald Sie ihn verschachteln. Betrachten Sie ihn also als Würze, nicht als Hauptgericht.

6. Die match-Anweisung

Python 3.10 hat match eingeführt, und es ist das richtige Werkzeug, wenn Sie einen Wert mit einer Reihe spezifischer Formen vergleichen, anstatt beliebige Bedingungen zu testen. Der Wert nach match wird der Reihe nach mit jedem case verglichen; das erste passende Muster gewinnt, ein Unterstrich dient als allgemeiner Standardfall, und Sie können jedem case mit if eine zusätzliche Bedingung hinzufügen. Wo eine if-Leiter viele unzusammenhängende Fragen stellt, liest sich ein match wie ein Menü.

command = "help"

match command:
    case "start":
        print("Starting the engine")
    case "stop" | "halt":              # either word matches
        print("Stopping")
    case "help":
        print("Available: start, stop, help")
    case _:
        print(f"Unknown command: {command}")

match kann weit mehr als nur Strings vergleichen; es kann Tupel, Listen und Dictionaries destrukturieren, und später in der Serie werden Sie sehen, wie es strukturierte Daten in einer eleganten Bewegung entpackt. Verwenden Sie es vorerst immer dann, wenn eine if-Leiter ausschließlich aus x == etwas-Tests bestehen würde, und bleiben Sie für alles andere bei if. Beide sind idiomatisch; die Wahl zwischen ihnen hängt davon ab, was an der Aufrufstelle besser lesbar ist.

Kontrollpunkt

Wie viele Zweige werden in einer if/elif/else-Leiter ausgeführt?

Werbung

7. Praxis: ein Steuerklassenrechner

Zeit, alles zusammenzuführen: Vergleiche, boolesche Logik, eine Leiter und F-Strings aus Teil 1. Der folgende Spielplatz implementiert eine vereinfachte progressive Steuerberechnung. Führen Sie ihn aus und bearbeiten Sie dann die Übungen in den Kommentaren: Sie fordern Sie auf, eine Steuerklasse hinzuzufügen, negative Eingaben mit einer Truthiness-Prüfung abzufangen und eine Entscheidung in einen bedingten Ausdruck umzuwandeln. Jede Änderung, die Sie vornehmen und überprüfen, ist zehn wert, über die Sie nur lesen.

Python-Spielplatz

Beachte, wie die Prüfung auf negatives Einkommen die gesamte Berechnung umschließt und die Stufenleiter im else-Zweig eine Ebene tiefer eingerückt ist. Eine solche Verschachtelung ist bis zu zwei oder drei Ebenen normal und unbedenklich. Darüber hinaus wird der Code schwer nachvollziehbar, und die professionelle Lösung besteht darin, umzustrukturieren: üblicherweise durch vorzeitiges return aus einer Funktion, eine Technik, die nach Teil 4 vollkommen einleuchten wird.

! Häufige Fehler, die du vermeiden solltest

  • if score = 100: schreiben und einen SyntaxError erhalten.

    Zuweisung ist =, Vergleich ist ==. Python verweigert eine Zuweisung innerhalb einer Bedingung genau deshalb, um diesen klassischen Ausrutscher abzufangen.

  • Den Doppelpunkt am Ende von if-, elif- oder else-Zeilen vergessen.

    Jeder Blockkopf in Python endet mit einem Doppelpunkt. Die Fehlermeldung zeigt auf die Zeile; die Korrektur ist ein einziger Tastendruck.

  • elif-Prüfungen von der lockersten zur strengsten anordnen, sodass die erste lockere Prüfung alles schluckt.

    Ordne die Leiter vom Spezifischsten zum am wenigsten Spezifischen und verfolge einen Beispielwert von Hand, um dich zu vergewissern.

  • if answer == "yes" or "y": prüfen und feststellen, dass es immer wahr ist.

    Das wird als (answer == "yes") or ("y") geparst, und ein nicht-leerer String ist truthy. Schreibe stattdessen answer in ("yes", "y").

? Häufig gestellte Fragen

Gibt es eine switch-Anweisung in Python? +

match, hinzugefügt in Python 3.10, füllt diese Rolle aus und geht mit strukturellen Mustern noch weiter. Vor 3.10 war die übliche Vorgehensweise eine if/elif-Leiter oder ein Dictionary-Lookup, beides wirst du in älterem Code immer noch antreffen.

Warum vier Leerzeichen und keine Tabs? +

Vier Leerzeichen sind die Konvention aus PEP 8, dem offiziellen Styleguide, und die Voreinstellung in jedem modernen Editor. Was wirklich zählt, ist Konsistenz innerhalb einer Datei; Tabs und Leerzeichen zu mischen ist ein Syntaxfehler.

Kann ich ein if in eine Zeile schreiben? +

Auf zwei Arten: den Bedingungsausdruck (x if cond else y) zur Auswahl eines Werts und eine einzeilige Anweisungsfolge wie if ready: launch(). Ersteres ist idiomatisch; Letzteres ist erlaubt, wird aber außerhalb von schnellen Skripten nicht gern gesehen.

Hat Python && und || wie andere Sprachen? +

Nein, Python schreibt sie als and, or und not. Wenn du && eintippst, erhältst du einen SyntaxError; die Wörter sind einer der Gründe, warum Python-Bedingungen so nah an der englischen Sprache lesbar sind.

8. Zusammenfassung und Ausblick

Deine Programme können jetzt denken: vollständige arithmetische und Vergleichsoperatoren, verkettete Vergleiche, boolesche Logik mit Kurzschlussauswertung, Truthiness, durch Einrückung definierte Blöcke, die if/elif/else-Leiter, Bedingungsausdrücke und match. Diese Werkzeuge tauchen in jeder einzelnen Lektion von hier bis zum Ende der Reihe auf, genau deshalb haben sie eine eigene Lektion bekommen.

Entscheidungen allein reichen nicht; Programme verdienen ihren Unterhalt durch Wiederholung von Arbeit. Teil 3, Python-Schleifen und Ablaufsteuerung behandelt for, while, break, continue und die Schleifenmuster, die alles antreiben, von Einmaleins-Tabellen bis zu Datenpipelines. Die Lektionen zu Operatoren, Entscheidungsfindung und Ablaufsteuerung in der Learn-Python-App unten spiegeln diesen Stoff mit zusätzlichen Quizfragen wider, wenn du mehr Übung brauchst, und das vollständige Curriculum findest du auf der Serienübersicht.

💡

Profi-Tipp

Wenn eine Bedingung dich verwirrt, gib sie aus. Die Zeile print(income <= 500_000, rate) kostet nichts und zeigt die tatsächlichen Booleans, die deine Leiter sieht, was jedes Mal besser ist, als auf den Code zu starren und zu raten.

Learn Python Android app icon

Üben für unterwegs

Learn Python, die kostenlose Android-App

Jedes Thema dieser Reihe gibt es auch in der App: mundgerechte Lektionen, ausführbare Beispiele, Quizfragen, Miniprojekte und einen Offline-Python-Spielplatz, der auf deinem Handy läuft.

Bishrul Haq

Written by

Bishrul Haq

Software engineer writing practical tutorials on Laravel, PHP, Python, and the tools behind real projects. More about me

Newsletter

Want more posts like this?

Get practical software notes and tutorials delivered when something new is published.

Kein Spam. Jederzeit abbestellbar.

Wie fandest du den Beitrag?

Kommentare

0
Anmelden oder Registrieren um mitzudiskutieren und auf diesen Beitrag zu reagieren.

Noch keine Kommentare. Teile als Erste oder Erster deine Gedanken.

Related posts

Wichtige Pandas-Funktionen in Python: Tricks und Features

Pandas ist eine meiner liebsten Bibliotheken in Python. Sie ist äußerst nützlich, um Daten übersichtlich und strukturiert darzustellen. Heute wird Pandas vielfach in Data Science, Machine Learning und anderen Bereichen eingesetzt.

vor 6 Jahren

Daten von Twitter mit Tweepy in Python abrufen

Um mit Python zu arbeiten, muss Python auf Ihrem Rechner installiert sein. Falls Sie Python noch nicht installiert haben, besuchen Sie die Python-Website und installieren Sie es.

vor 6 Jahren

Pro-Kopf-Einkommen der USA mit linearer Regression vorhersagen

Python ermöglicht es, beliebige Daten mithilfe der linearen Regression vorherzusagen und zu analysieren. Die lineare Regression ist eine grundlegende Methode des maschinellen Lernens und der Statistik, die zur Lösung komplexer Probleme entwickelt wurde.

vor 6 Jahren

Wichtige Sortieralgorithmen für Informatikstudenten

Algorithmen werden üblicherweise in Informatik- und Softwareentwicklungsstudiengängen im Bachelor oder Master gelehrt. Manchen fällt das Verständnis schwer, weil sie auf Auswendiglernen setzen.

vor 6 Jahren

Python 3.14 für reale Projekte: Free Threading, JIT, t-Strings und Zstandard

Was in Python 3.14 für die Produktion wirklich zählt: offiziell unterstützte Free-Threaded-Builds, der experimentelle JIT, t-Strings für sichere Interpolation, Zstandard in der Standardbibliothek und ein risikoarmer Einführungsplan.

vor 1 Monat