W3docs

Python If...Else

Lerne, wie Python if, elif und else funktionieren – mit Syntax, Vergleichsoperatoren, logischen Operatoren, verschachtelten Bedingungen und dem ternären Ausdruck.

Bedingte Anweisungen ermöglichen es einem Python-Programm, je nachdem ob eine Bedingung wahr oder falsch ist, zwischen verschiedenen Ausführungspfaden zu wählen. Dieses Kapitel behandelt alle Formen von Python-Bedingungen: if, if-else, if-elif-else, verschachteltes if und die einzeilige Kurzform — zusammen mit den Vergleichs- und logischen Operatoren, die Bedingungen ermöglichen.

Die if-Anweisung

Die if-Anweisung ist die einfachste Bedingung. Der eingerückte Block wird nur ausgeführt, wenn die Bedingung zu True ausgewertet wird.

if condition:
    # code that runs when condition is True

Beispiel

python— editable, runs on the server

Python verwendet Einrückung (per Konvention 4 Leerzeichen) zur Definition des Blocks — es gibt keine geschweiften Klammern. Wenn die Bedingung False ist, wird der Block einfach übersprungen.

Vergleichsoperatoren

Bedingungen werden aus Ausdrücken aufgebaut, die zwei Werte vergleichen. Jeder Ausdruck ergibt einen Python booleanTrue oder False.

OperatorBedeutungBeispielErgebnis
==Gleich5 == 5True
!=Ungleich5 != 3True
>Größer als5 > 3True
<Kleiner als5 < 3False
>=Größer als oder gleich5 >= 5True
<=Kleiner als oder gleich4 <= 5True

Siehe Python Operators für die vollständige Operatorreferenz einschließlich arithmetischer und Zuweisungsoperatoren.

Logische Operatoren

Logische Operatoren kombinieren mehrere Bedingungen zu einem einzigen Ausdruck.

OperatorGibt True zurück, wenn…Beispiel
andBeide Bedingungen sind Truex > 0 and x < 10
orMindestens eine Bedingung ist Truex < 0 or x > 100
notDie Bedingung ist Falsenot logged_in

Beispiel — and

python— editable, runs on the server

Beispiel — or und not

day = "Saturday"
if day == "Saturday" or day == "Sunday":
    print("It is the weekend")

logged_in = False
if not logged_in:
    print("Please log in")

Die if-else-Anweisung

Füge eine else-Klausel hinzu, um den Fall zu behandeln, wenn die Bedingung False ist.

if condition:
    # runs when condition is True
else:
    # runs when condition is False

Beispiel

python— editable, runs on the server

Nur einer der beiden Blöcke wird bei einem gegebenen Durchlauf ausgeführt.

Die if-elif-else-Anweisung

Verwende elif (kurz für „else if"), um mehrere Bedingungen der Reihe nach zu testen. Python prüft sie von oben nach unten und führt den ersten passenden Block aus. Der else-Block am Ende ist ein Auffangbehälter für den Fall, dass keine der Bedingungen zutrifft.

if condition1:
    # runs when condition1 is True
elif condition2:
    # runs when condition2 is True and condition1 is False
elif condition3:
    # runs when condition3 is True and the above are False
else:
    # runs when none of the above are True

Du kannst so viele elif-Klauseln verwenden wie nötig, aber nur ein if und höchstens ein else.

Beispiel — Notenklassifizierung

python— editable, runs on the server

Warum die Reihenfolge wichtig ist: Sobald Python eine True-Bedingung findet, hört es auf zu prüfen. Wenn du score >= 60 zuerst schreiben würdest, würde ein Score von 95 "Grade: C" ausgeben, weil 95 auch >= 60 ist. Setze immer die spezifischste (strengste) Bedingung zuerst.

Verschachtelte if-Anweisungen

Eine if-Anweisung kann im Block einer anderen if-Anweisung erscheinen. Dies wird als Verschachtelung bezeichnet und ist nützlich, wenn du einen sekundären Test nur dann anwenden möchtest, wenn ein primärer Test bestanden wird.

score = 85
if score >= 60:
    if score >= 90:
        print("Grade: A")
    elif score >= 80:
        print("Grade: B")
    else:
        print("Grade: C")
else:
    print("Grade: F")
# Output: Grade: B

Achtung: Tiefe Verschachtelung macht Code schwer lesbar. Bevorzuge elif-Ketten für flache Vergleiche, und erwäge, verschachtelte Logik in eine Funktion auszulagern, wenn die Verschachtelung zwei Ebenen übersteigt.

Wahrheitswerte und falsy-Werte

Python behandelt viele Werte implizit als True oder False, ohne einen Vergleichsoperator zu verwenden. Werte, die in einem boolean-Kontext als False gelten, sind:

  • None
  • False
  • 0 (ganzzahlige Null), 0.0 (Fließkomma-Null)
  • "" (leerer string), [] (leeres array), {} (leeres dict), () (leeres Tupel), set() (leere Menge)

Alles andere gilt als True. Das ermöglicht prägnante Schutzausdrücke:

name = "Alice"
if name:
    print("Name is set")      # prints because "Alice" is truthy

items = []
if not items:
    print("The list is empty") # prints because [] is falsy

value = None
if value is None:
    print("No value provided") # use 'is None' for explicit None checks

Verwende is None / is not None (nicht == None), wenn du speziell auf None testest — das ist die Python-Stilkonvention und vermeidet unbeabsichtigte Übereinstimmungen.

Kurzform if (ternärer Ausdruck)

Pythons einzeiliger bedingter Ausdruck weist basierend auf einer Bedingung einen von zwei Werten zu:

value = result_if_true if condition else result_if_false

Beispiel

age = 20
status = "adult" if age >= 18 else "minor"
print(status)
# Output: adult

Dies entspricht:

if age >= 18:
    status = "adult"
else:
    status = "minor"

Verwende die ternäre Form für einfache Wertzuweisungen. Vermeide Verschachtelung — a if c1 else b if c2 else c wird schnell unleserlich.

Die pass-Anweisung

Python erfordert mindestens eine Anweisung in jedem Block. Wenn du einen if-Zweig definieren möchtest, der absichtlich nichts tut (ein Platzhalter während der Entwicklung), verwende pass:

x = 10
if x > 5:
    pass  # TODO: handle this case later
else:
    print("x is 5 or less")

pass ist eine No-Op-Anweisung — sie teilt Python mit: „Dieser Block ist absichtlich leer."

Der Walrus-Operator := (Python 3.8+)

Der Walrus-Operator weist einer Variablen einen Wert zu und testet ihn im selben Ausdruck. Er ist am nützlichsten, wenn du den getesteten Wert im if-Block benötigst:

numbers = [1, 2, 3, 4, 5]
if (n := len(numbers)) > 3:
    print(f"List has {n} items, which is more than 3")
# Output: List has 5 items, which is more than 3

Ohne := würdest du eine separate Zuweisungszeile benötigen. Die Klammern um n := len(numbers) sind hier erforderlich, um Mehrdeutigkeit zu vermeiden.

Häufige Stolperfallen

Verwendung von = statt ==

# Wrong — this is assignment, not comparison, and causes a SyntaxError in conditions
# if x = 5:

# Correct
if x == 5:
    print("x is five")

Den Doppelpunkt vergessen

Jede if-, elif- und else-Zeile muss mit : enden. Ein fehlender Doppelpunkt verursacht einen SyntaxError.

Inkonsistente Einrückung

Alle Anweisungen im selben Block müssen genau die gleiche Einrückung verwenden. Das Mischen von Tabs und Leerzeichen verursacht einen IndentationError. Halte dich an 4 Leerzeichen, was dem PEP 8-Standard entspricht.

Wann was verwenden

SzenarioBeste Wahl
Eine Bedingung, einzelne Aktionif
Zwei sich gegenseitig ausschließende Pfadeif-else
Drei oder mehr Pfadeif-elif-else
Sekundärer Test innerhalb eines ZweigsVerschachteltes if
Einfache WertzuweisungTernäres x if c else y
Gleichheitsprüfungen mit mehreren Werten (Python 3.10+)match-Anweisung

Übungen

Übung
What are the correct ways to write an if-else statement in Python?
What are the correct ways to write an if-else statement in Python?

Wenn du Bedingungen verstehst, ist der nächste logische Schritt die Wiederholung von Code mit Python while-Schleifen und Python for-Schleifen.

Was this page helpful?