Wiederholungen mit while

Oftmals in einem Computerprogramm soll der Computer Dinge wiederholen bis eine Bedingung nicht mehr zutrifft. Also zum Beispiel wäre es doch gut, wenn das Ratespiel nicht drei Versuche, sondern endlos viele Versuche erlauben würde.

Der Befehl While

while wiederholt einen Programmteil so oft, bis die Bedingung nicht mehr zutrifft.

Der Aufbau des Befehls ist sehr ähnlich zu dem if-Befehl.

Zuerst kommt das Schlüsselwort while, danach die Bedingung gefolgt von einem Doppelpunkt. In den nächsten Zeilen eingerückt die Befehle, die wiederholt werden sollen.

Ein konkretes Beispiel ohneende.py, welches immer wieder nach einer Eingabe fragt, bis ende eingegeben wurde (es wird hier != also ungleich verwendet. Alle möglichen Bedingungen):

import turtle
t = turtle.Pen()
eingabe = turtle.textinput(title="Sag ende", prompt="Was sagst du?")
while eingabe != "ende":
    # Schreibe den Text in das Turtle-Fenster
    t.write("Bei der Eingabe -" + eingabe + "- konnte ich kein ende finden")
    # Erneute Abfrage eines Wortes
    eingabe = turtle.textinput(title="Sag ende", prompt="Was sagst du?")
    # Lösche das vorher geschriebene
    t.clear()
t.write("So, jetzt ist aber fertig.")

Es wird an diesem Beispiel deutlich, dass die Wiederholung unter Umständen auch Null mal stattfindet. Es wird vor jedem Schleifenaufruf die Bedingung überprüft. Wird also schon beim ersten Mal eingeben ende eingegeben (der textinput-Befehl in der ersten Zeile im Beispiel), dann ist Eingabe schon beim allerersten überprüfen gleich ende das heißt durch den Vergleich entsteht der Wahrheitswert False.

Solange aus der Bedingung True entsteht werden die enthaltenen Befehle wiederholt. Das letzte t.write hat weniger Leerzeilen am Anfang der Zeile und gehört damit nicht mehr zu dem while, wird also nicht mehr wiederholt bzw. nicht übersprungen.

Übung

  1. Schreiben Sie in die Datei darum.py eine while-Schleife, die immer fragt "warum soll ich? " erst bei der Eingabe "schluss jetzt!" beendet sich die Schleife.
  2. Schreiben Sie in die Datei weiter.py eine Schleife, die die Frage "immer noch weiter? " wiederholt solange man "weiter" eingibt.