Zum Hauptinhalt springen

Benutzereingaben wiederholen

Warum brauchen wir das?

Spiele und Dialoge fragen oft nochmal:

  • falsche PIN → erneut
  • Ratespiel → neuer Tipp
  • Menü bis "ende"
  • Formular: solange die Antwort leer ist

while + input ist ein Power-Duo: das Programm wartet, prüft, fragt wieder.

Definition: Eingabe-Schleife

Definition – Eingabe-Schleife:
Eine Eingabe-Schleife fragt den User so lange, bis eine Bedingung erfüllt ist
(richtige Antwort, erlaubter Befehl, Max-Versuche oder Abbruchwort).

Ohne sie müsstest du dieselbe input-Zeile zehnmal kopieren – und wüsstest trotzdem nicht, was die Person tippt.

Muster 1: bis die Antwort stimmt

antwort = ""
while antwort != "ja":
antwort = input("Bist du bereit? (ja) ").strip().lower()
print("Los!")

Warum antwort = "" vorher?
Damit die Variable existiert und die erste while-Prüfung möglich ist.
"" ist ungleich "ja" → die Schleife startet.

Py: „Erst leere Box, dann füllen, dann prüfen.“
Buggy startet ohne Variable und erntet NameError.

Muster 2: mit Versuchen

versuche = 0
richtig = False
while versuche < 3 and not richtig:
tipp = input("Geheimwort: ").strip().lower()
if tipp == "python":
richtig = True
else:
print("Noch nicht.")
versuche = versuche + 1

if richtig:
print("Geschafft!")
else:
print("Leider verbraucht.")

Die Schleife endet bei Treffer oder nach 3 Versuchen – zwei Auswege.

Muster 3: Menü bis Exit

wahl = ""
while wahl != "3":
print("1) A 2) B 3) Ende")
wahl = input("Wahl: ").strip()
print("Programm beendet.")

Neue Wörter

Eingabe-Schleifeinput loop

while-Schleife, die wiederholt input fragt.

Abbruchbedingungtermination condition

Wann die Schleife enden darf (Antwort, Exit, Max-Versuche).

Was passiert im Computer?

  1. Bedingung prüfen.
  2. True → input (warten) → vielleicht if → Zähler ändern.
  3. Zurück zu 1.
  4. False → weiter im Programm nach der Schleife.

Jede Eingabe ist ein EVA-Minizyklus in der Schleife.

Häufige Fehler

FehlerProblem
Variable vor while nicht gesetztNameError bei erster Prüfung
Kein Abbruch möglichEndlosschleife
strip/lower vergessen„Ja“ ≠ „ja“
Versuche nicht erhöhennie „verbraucht“
Abbruchwort falsch geschriebenSchleife endet nicht

Probiere es selbst

Experiment 1 – bereit?

antwort = ""
while antwort != "ja":
antwort = input("Bereit? (ja) ").strip().lower()
print("Los!")

Experiment 2 – PIN

pin = ""
while pin != "1234":
pin = input("PIN: ").strip()
print("OK")

Experiment 3 – max 3

Geheimwort mit maximal 3 Versuchen (Muster 2).

Experiment 4 – Menü

Drei Optionen, Ende bei "3".

Fehlerdetektiv

while antwort != "ja":
antwort = input("ja? ")
Loesung anzeigen

antwort existiert vor dem ersten Test oft nicht. Vorher setzen:

antwort = ""
while antwort != "ja":
antwort = input("ja? ").strip().lower()

Übungen

Level 1 – Entdecken

Frage nach "ok", bis es passt (mit strip/lower).

Loesung
a = ""
while a != "ok":
a = input("Tippe ok: ").strip().lower()
print("Danke")

Level 2 – Anwenden

Farben-Menü bis "ende".

Loesung
cmd = ""
while cmd != "ende":
cmd = input("Farbe oder ende: ").strip().lower()
if cmd != "ende":
print(f"Du magst {cmd}")

Level 3 – Erweitern

Passwort "club", max. 3 Versuche, am Ende Erfolg oder Misserfolg.

Loesung
versuche = 0
ok = False
while versuche < 3 and not ok:
pw = input("Passwort: ").strip().lower()
if pw == "club":
ok = True
else:
print("Falsch")
versuche = versuche + 1
if ok:
print("Willkommen")
else:
print("Gesperrt")

Mini-Challenge

Baue ein Mini-Menü mit 2 Aktionen + Exit.
Erkläre: Warum muss die Variable vor dem while existieren?

Zusammenfassung

  • while + input = wiederholte Fragen.
  • Variable vor der Schleife initialisieren.
  • Abbruch: richtige Antwort, Exit-Wort, Max-Versuche.
  • strip/lower machen Vergleiche fair.
  • Immer einen Ausweg einplanen.

Mini-Quiz

Mini-QuizWarum setzt man oft antwort = '' vor while antwort != 'ja'?
  1. Was ist eine Eingabe-Schleife?
  2. Nenne zwei Abbrucharten.
  3. Warum lower bei Textantworten?
Loesungen
  1. while, das wiederholt input fragt.
  2. z. B. richtige Antwort, Exit-Wort, Max-Versuche.
  3. Damit Ja und ja gleich behandelt werden.

Eingabe-Loops sitzen! Als Nächstes: Endlosschleifen erkennen.