Zum Hauptinhalt springen

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

Mini-QuizWas kombiniert man oft fuer sichere Zahlen-Eingaben?

Wiederholen sitzt! Als Nächstes: Division durch null.