if else in Python: Leitfaden für bedingte Anweisungen

Meistern Sie Python if else-Anweisungen mit klaren Beispielen. Lernen Sie Syntax, Best Practices und häufige Anwendungsfälle. Enthält interaktive Code-Beispiele und Tutorials.

Die if else-Anweisung in Python bietet bidirektionale Entscheidungsfindung, indem ein Codeblock ausgeführt wird, wenn eine Bedingung wahr ist, und ein anderer Block, wenn die Bedingung falsch ist. Im Gegensatz zu einer einfachen if-Anweisung, die nichts tut, wenn die Bedingung falsch ist, stellt if else sicher, dass einer der beiden Codepfade immer ausgeführt wird. Dies ist wesentlich für Programme, die sowohl Erfolgs- als auch Fehlerszenarien behandeln müssen.

Grundlegende if else-Syntax

Die if else-Anweisung erweitert die grundlegende if-Anweisung, indem eine alternative Aktion hinzugefügt wird, wenn die Bedingung zu False ausgewertet wird.

if condition:
    # code to execute if condition is True
    statement1
else:
    # code to execute if condition is False
    statement2

Das Schlüsselwort else fängt alles ab, was von der if-Bedingung nicht erfasst wird, und fungiert als "Auffangbecken" für Szenarien, die von der if-Anweisung nicht abgedeckt werden. Python verwendet einen Doppelpunkt (:) nach den Schlüsselwörtern if und else, gefolgt von eingerückten Codeblöcken.

Beispiel 1: Einfache if else-Anweisung

a = 200
b = 33

if b > a:
    print("b is greater than a")
else:
    print("b is not greater than a")
Ausgabe:
b is not greater than a

Since 33 is not greater than 200, the condition is false, so the else block executes.

Wie if else funktioniert

Die if else-Anweisung folgt einem einfachen Ausführungsablauf:

  1. Python wertet die Bedingung nach dem Schlüsselwort if aus
  2. Wenn die Bedingung True ist, wird der erste eingerückte Block ausgeführt und der else-Block wird übersprungen
  3. Wenn die Bedingung False ist, wird der erste Block übersprungen und der else-Block wird ausgeführt
  4. Nachdem einer der Blöcke abgeschlossen ist, setzt sich die Ausführung mit Code nach der gesamten if else-Struktur fort

Beispiel: Temperaturprüfung

temperature = 15

if temperature > 20:
    print("It's warm outside")
else:
    print("It's cool outside")

print("Have a nice day!")
Ausgabe:
It's cool outside
Have a nice day!

Die letzte print-Anweisung wird unabhängig davon ausgeführt, welcher Zweig genommen wurde.

Werte mit if else vergleichen

Die if else-Anweisung verwendet häufig Vergleichsoperatoren, um Entscheidungen basierend auf numerischen oder Zeichenfolgewerten zu treffen.

Beispiel 1: Zahlenvergleich

number = 7

if number % 2 == 0:
    print("The number is even")
else:
    print("The number is odd")
Ausgabe:
Die Zahl ist ungerade

Beispiel 2: Zeichenfolgenvergleich

username = "admin"

if username == "admin":
    print("Welcome, Administrator!")
else:
    print("Welcome, User!")
Ausgabe:
Willkommen, Administrator!

Beispiel 3: Altersüberprüfung

age = 16

if age >= 18:
    print("You are eligible to vote")
else:
    print("You are not eligible to vote yet")
Ausgabe:
Sie sind noch nicht wahlberechtigt

Mehrere Anweisungen in if else-Blöcken

Sowohl die if- als auch die else-Blöcke können mehrere Anweisungen enthalten, solange sie eine konsistente Einrückung beibehalten.

Beispiel:

score = 85

if score >= 90:
    print("Excellent performance!")
    print("You earned an A grade")
    grade = "A"
    bonus_points = 10
else:
    print("Good effort!")
    print("Keep working hard")
    grade = "B"
    bonus_points = 5

print(f"Your grade is: {grade}")
print(f"Bonus points: {bonus_points}")
Ausgabe:
Gute Leistung!
Weiter so
Ihre Note ist: B
Bonuspunkte: 5

Einzeiliges if else (Ternärer Operator)

Für einfache Bedingungen mit einzelnen Anweisungen ermöglicht Python, if else in einer Zeile zu schreiben, wodurch prägnanterer Code entsteht.

Standardformat:

age = 20

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

print(status)

Einzeilenformat (Ternärer Operator):

age = 20
status = "adult" if age >= 18 else "minor"
print(status)
Ausgabe:
erwachsen

More Examples:

# Example 1: Maximum of two numbers
a = 10
b = 20
max_value = a if a > b else b
print(f"Maximum: {max_value}")  # Output: Maximum: 20

# Example 2: Pass/Fail determination
marks = 75
result = "Pass" if marks >= 50 else "Fail"
print(result)  # Output: Pass

# Example 3: Sign determination
number = -5
sign = "Positive" if number > 0 else "Non-positive"
print(sign)  # Output: Non-positive

Diese kompakte Syntax ist besonders nützlich für einfache Zuweisungen und schnelle Bedingungen.

Bedingungen mit logischen Operatoren kombinieren

Sie können die Operatoren and, or und not verwenden, um komplexe Bedingungen in if else-Anweisungen zu erstellen.

Beispiel 1: Verwendung des and-Operators

age = 25
has_license = True

if age >= 18 and has_license:
    print("You can drive")
else:
    print("You cannot drive")
Ausgabe:
You can drive

Beispiel 2: Verwendung des or-Operators

day = "Saturday"

if day == "Saturday" or day == "Sunday":
    print("It's the weekend!")
else:
    print("It's a weekday")
Ausgabe:
Es ist Wochenende!

Beispiel 3: Verwendung des not-Operators

is_raining = False

if not is_raining:
    print("You don't need an umbrella")
else:
    print("Take an umbrella")
Ausgabe:
Sie brauchen keinen Regenschirm

Beispiel 4: Temperaturbereichsprüfung

temperature = 35

if temperature > 30 and temperature < 40:
    print("It's a hot day!")
else:
    print("Temperature is moderate")
Ausgabe:
It's a hot day!

Verschachtelte if else-Anweisungen

Sie können if else-Anweisungen in andere if else-Anweisungen einfügen, um mehrere Entscheidungsebenen zu behandeln.

Beispiel 1: Grundlegende Verschachtelung

number = 10

if number >= 0:
    if number == 0:
        print("Number is zero")
    else:
        print("Number is positive")
else:
    print("Number is negative")
Ausgabe:
Die Zahl ist positiv

Beispiel 2: Notenklassifizierung mit Verschachtelung

marks = 85

if marks >= 50:
    print("You passed!")
    if marks >= 90:
        print("Grade: A - Excellent!")
    else:
        print("Grade: B - Good job!")
else:
    print("You failed")
    print("Please retake the exam")
Ausgabe:
Sie haben bestanden!
Note: B - Gute Arbeit!

Beispiel 3: Mehrstufige Benutzerauthentifizierung

username = "admin"
password = "secret123"

if username == "admin":
    if password == "secret123":
        print("Access granted")
        print("Welcome to admin panel")
    else:
        print("Incorrect password")
else:
    print("User not found")
Ausgabe:
Access granted
Welcome to admin panel

Obwohl Verschachtelung mächtig ist, kann übermäßige Verschachtelung Code schwerer lesbar machen—erwägen Sie die Verwendung von elif für sauberere Multi-Bedingungslogik.

Benutzereingabe mit if else validieren

Die if else-Anweisung ist wesentlich für Eingabevalidierung und Fehlerbehandlung.

Beispiel 1: Leere Zeichenfolgenprüfung

username = ""

if len(username) > 0:
    print(f"Welcome, {username}!")
else:
    print("Error: Username cannot be empty")
Ausgabe:
Fehler: Benutzername darf nicht leer sein

Beispiel 2: Passwortlängenvalidierung

password = "abc"

if len(password) >= 8:
    print("Password is valid")
else:
    print("Password must be at least 8 characters")
Ausgabe:
Passwort muss mindestens 8 Zeichen lang sein

Beispiel 3: Numerische Bereichsvalidierung

age = 150

if age > 0 and age <= 120:
    print(f"Age {age} is valid")
else:
    print("Invalid age entered")
Ausgabe:
Invalid age entered

Beispiel 4: Listenmitgliedschaftsprüfung

allowed_users = ["alice", "bob", "charlie"]
current_user = "david"

if current_user in allowed_users:
    print("Access granted")
else:
    print("Access denied")
Ausgabe:
Zugriff verweigert

Erweitern mit elif

Obwohl sich diese Seite auf if else konzentriert, können Sie elif (else if) zwischen if und else hinzufügen, um mehrere Bedingungen nacheinander zu testen.

temperature = 22

if temperature > 30:
    print("It's hot outside!")
elif temperature > 20:
    print("It's warm outside")
elif temperature > 10:
    print("It's cool outside")
else:
    print("It's cold outside!")
Ausgabe:
It's warm outside

Die else-Anweisung muss an letzter Stelle stehen und fungiert als Standard, wenn keine andere Bedingung wahr ist.

Häufige Anwendungsfälle

Anwendungsfall 1: Anmeldesystem

stored_password = "python123"
entered_password = "python123"

if entered_password == stored_password:
    print("Login successful")
else:
    print("Invalid password")
Ausgabe:
Anmeldung erfolgreich

Anwendungsfall 2: Rabattrechner

purchase_amount = 120

if purchase_amount >= 100:
    discount = purchase_amount * 0.10
    print(f"You get a 10% discount: ${discount}")
else:
    print("No discount available")
Ausgabe:
Sie erhalten 10% Rabatt: $12.0

Anwendungsfall 3: Bestanden/Nicht bestanden-System

exam_score = 45
passing_score = 50

if exam_score >= passing_score:
    print("Congratulations! You passed")
else:
    print(f"Sorry, you need {passing_score - exam_score} more points to pass")
Ausgabe:
Sorry, you need 5 more points to pass

Anwendungsfall 4: Dateierweiterungsprüfer

filename = "document.pdf"

if filename.endswith(".pdf"):
    print("This is a PDF file")
else:
    print("This is not a PDF file")
Ausgabe:
Dies ist eine PDF-Datei

Anwendungsfall 5: Schaltjahrprüfer

year = 2024

if year % 4 == 0:
    print(f"{year} is a leap year")
else:
    print(f"{year} is not a leap year")
Ausgabe:
2024 ist ein Schaltjahr

Häufige Fehler zu Vermeiden

Fehler 1: Doppelpunkt Vergessen

# Wrong
if number > 0
    print("Positive")
else
    print("Not positive")

# Correct
if number > 0:
    print("Positive")
else:
    print("Not positive")

Fehler 2: Inkonsistente Einrückung

# Wrong
if age >= 18:
    print("Adult")
else:
  print("Minor")  # Different indentation

# Correct
if age >= 18:
    print("Adult")
else:
    print("Minor")

Fehler 3: elif Nach else Verwenden

# Wrong
if x > 0:
    print("Positive")
else:
    print("Not positive")
elif x < 0:  # SyntaxError
    print("Negative")

# Correct
if x > 0:
    print("Positive")
elif x < 0:
    print("Negative")
else:
    print("Zero")

Fehler 4: Leere Codeblöcke

# Wrong
if condition:
    # Code here
else:
    # This will cause an error

# Correct - use pass for placeholder
if condition:
    print("Condition met")
else:
    pass  # Do nothing

Verwenden Sie pass als Platzhalter

Best Practices

Praxis 1: Bedingungen Einfach und Lesbar Halten

# Less readable
if not (age < 18 or not has_permission):
    print("Allowed")

# More readable
if age >= 18 and has_permission:
    print("Allowed")

Praxis 2: Aussagekräftige Variablennamen Verwenden

# Poor
if x > 100:
    y = True

# Better
if purchase_amount > 100:
    eligible_for_discount = True

Praxis 3: Beide Pfade Explizit Behandeln

# When both outcomes matter, use if else
file_exists = True

if file_exists:
    print("Loading file...")
else:
    print("Creating new file...")

Wenn beide Ergebnisse wichtig sind, verwenden Sie if else

Praxis 4: Tiefe Verschachtelung Vermeiden

# Harder to read
if condition1:
    if condition2:
        if condition3:
            action()

# Better - use elif or logical operators
if condition1 and condition2 and condition3:
    action()

Probieren Sie es Selbst

Experimentieren Sie mit if else-Anweisungen

Bereit
main.py
Ausgabekonsole 0 ms
// Klicken Sie auf "Code Ausführen", um Ergebnisse zu sehen

Verwandte Themen

Häufig Gestellte Fragen

Was ist der Unterschied zwischen if und if else in Python?

Eine if-Anweisung führt Code nur aus, wenn die Bedingung wahr ist, und tut sonst nichts. Eine if else-Anweisung garantiert, dass einer von zwei Codeblöcken ausgeführt wird—entweder der if-Block, wenn die Bedingung wahr ist, oder der else-Block, wenn sie falsch ist.

Kann ich ein if else ohne elif haben?

Ja, if else funktioniert perfekt ohne elif. Das Schlüsselwort elif wird nur benötigt, wenn Sie mehrere Bedingungen nacheinander testen möchten.

Brauche ich Klammern um die Bedingungen in Python if else-Anweisungen?

Nein, Klammern sind optional. Sowohl if (x > 5): als auch if x > 5: sind gültig, obwohl letzteres in Python häufiger verwendet wird.

Kann ich if else in einer Zeile verwenden?

Ja, Python unterstützt den ternären Operator: result = "yes" if condition else "no". Dies ist nützlich für einfache Zuweisungen.

Was passiert, wenn ich vergesse, Code in einem else-Block einzurücken?

Python wird einen IndentationError auslösen, da es konsistente Einrückung benötigt, um Codeblöcke zu definieren.

Kann else allein ohne if erscheinen?

Nein, else muss immer mit einer vorhergehenden if-Anweisung gepaart sein. Sie können else nicht unabhängig verwenden.