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") 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:
- Python wertet die Bedingung nach dem Schlüsselwort
ifaus - Wenn die Bedingung
Trueist, wird der erste eingerückte Block ausgeführt und derelse-Block wird übersprungen - Wenn die Bedingung
Falseist, wird der erste Block übersprungen und derelse-Block wird ausgeführt - 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!") 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") Die Zahl ist ungerade
Beispiel 2: Zeichenfolgenvergleich
username = "admin"
if username == "admin":
print("Welcome, Administrator!")
else:
print("Welcome, User!") 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") 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}") 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) 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") 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") 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") 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") 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") 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") 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") 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") 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") 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") 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") 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!") 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") 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") 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") 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") 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") 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
// 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.