Ein Dashboard über Schleifen und Verzweigungen in Python
Die if-Anweisung ist die grundlegendste Form der Verzweigung in Python.
if bedingung:
# Code der ausgeführt wird, wenn die Bedingung True ist
alter = 18
if alter >= 18:
print("Sie sind volljährig.")
Mit else können Sie Code angeben, der ausgeführt wird, wenn die Bedingung nicht erfüllt ist.
if bedingung:
# Code wenn Bedingung True
else:
# Code wenn Bedingung False
alter = 16
if alter >= 18:
print("Sie sind volljährig.")
else:
print("Sie sind minderjährig.")
Für mehrere Bedingungen können Sie elif (else if) verwenden.
if bedingung1:
# Code wenn bedingung1 True
elif bedingung2:
# Code wenn bedingung2 True
else:
# Code wenn keine Bedingung True
note = 2.3
if note == 1.0:
print("Sehr gut!")
elif note <= 2.0:
print("Gut!")
elif note <= 3.0:
print("Befriedigend")
elif note <= 4.0:
print("Ausreichend")
else:
print("Nicht bestanden")
Hinweis: Die Reihenfolge der Bedingungen ist wichtig! Python überprüft die Bedingungen von oben nach unten und führt nur den ersten zutreffenden Block aus.
If-Anweisungen können auch verschachtelt werden.
alter = 20
hat_fuehrerschein = True
if alter >= 18:
if hat_fuehrerschein:
print("Darf Auto fahren.")
else:
print("Darf kein Auto fahren (kein Führerschein).")
else:
print("Darf kein Auto fahren (zu jung).")
Achtung: Zu starke Verschachtelung kann den Code schwer lesbar machen. Ab 3-4 Verschachtelungsebenen sollten Sie über eine Umstrukturierung nachdenken.
Die for-Schleife wird verwendet, um über eine Sequenz (Liste, Tuple, String etc.) zu iterieren.
for element in sequenz:
# Code der für jedes Element ausgeführt wird
# Über eine Liste iterieren
farben = ["rot", "grün", "blau"]
for farbe in farben:
print(farbe)
# Mit range() Zahlen durchgehen
for i in range(5): # 0 bis 4
print(i)
# Über einen String iterieren
for buchstabe in "Python":
print(buchstabe)
Die while-Schleife wird ausgeführt, solange eine Bedingung wahr ist.
while bedingung:
# Code der wiederholt ausgeführt wird
# Einfacher Zähler
zaehler = 0
while zaehler < 5:
print(zaehler)
zaehler += 1
# Benutzereingabe validieren
eingabe = ""
while eingabe != "quit":
eingabe = input("Eingabe ('quit' zum Beenden): ")
print("Sie haben eingegeben:", eingabe)
Achtung vor Endlosschleifen! Stellen Sie sicher, dass die Bedingung irgendwann False wird, sonst läuft die Schleife unendlich weiter.
Python bietet spezielle Anweisungen zur Steuerung von Schleifen.
Beendet die Schleife sofort:
for i in range(10):
if i == 5:
break
print(i) # Druckt 0 bis 4
Springt zum nächsten Schleifendurchlauf:
for i in range(5):
if i == 2:
continue
print(i) # Druckt 0, 1, 3, 4
Wird ausgeführt, wenn die Schleife normal beendet wird (nicht durch break):
for i in range(3):
print(i)
else:
print("Schleife normal beendet")
| Aspekt | For-Schleife | While-Schleife |
|---|---|---|
| Verwendung | Wenn die Anzahl der Durchläufe bekannt ist oder über eine Sequenz iteriert wird | Wenn eine Bedingung erfüllt sein muss (Anzahl der Durchläufe unbekannt) |
| Initialisierung | Automatisch durch die Sequenz | Manuell vor der Schleife |
| Bedingung | Implizit durch die Sequenz | Explizit angegeben |
| Inkrement | Automatisch | Manuell im Schleifenkörper |
| Endlosschleifen | Unwahrscheinlich | Möglich, wenn Bedingung nie False wird |
Tipp: In Python wird die for-Schleife meist bevorzugt, wenn möglich, da sie weniger fehleranfällig ist (keine Endlosschleifen, keine vergessenen Inkremente).
import random
zahl = random.randint(1, 100)
versuche = 0
while True:
raten = int(input("Rate eine Zahl zwischen 1 und 100: "))
versuche += 1
if raten < zahl:
print("Zu niedrig!")
elif raten > zahl:
print("Zu hoch!")
else:
print(f"Richtig! Du hast {versuche} Versuche gebraucht.")
break
# Finde alle Primzahlen bis 100
for num in range(2, 101):
is_prime = True
for i in range(2, int(num**0.5) + 1):
if num % i == 0:
is_prime = False
break
if is_prime:
print(num, end=" ")