Eingaben wiederholen
Muster: while + try
zahl = None
while zahl is None:
try:
zahl = int(input("Ganze Zahl: "))
except ValueError:
print("Ungueltig – bitte Ziffern wie 7 oder 12.")
print(f"Danke, {zahl}!")
Mit Flag
ok = False
while not ok:
try:
n = int(input("n: "))
ok = True
except ValueError:
print("Nochmal.")
Rate mal!
Warum while?
Auflösung
Damit der User mehrere Versuche bekommt, ohne dass das Programm endet.
Probiere es selbst
Experiment 1
Zahl bis gültig.
Experiment 2
Nur positive Zahlen akzeptieren (nach int noch if).
Experiment 3
Maximal 5 Versuche, sonst Abbruch.
Fehlerdetektiv
while True:
n = int(input("n: "))
Lösung
Ohne try knallt ungültige Eingabe. Und ohne break/Bedingung Endlosschleife.
Übungen
Level 1
Wiederhole bis int klappt.
Level 2
Zahl 1–10 erzwingen.
Level 3
Funktion lies_int(text), die absichert und zurückgibt.
Level-3-Lösung
def lies_int(text):
while True:
try:
return int(input(text))
except ValueError:
print("Bitte eine ganze Zahl.")
x = lies_int("Alter: ")
print(x)
Mini-Quiz
Wiederholen sitzt! Als Nächstes: Division durch null.