i

Schleifen mit Bedingungen

Bisher haben wir nur Schleifen kennen gelernt, wo wir beim Programmieren von Anfang an wussten (oder zumindest hätten wissen können), wie oft die Schleife wiederholt wird und mit welchen Werten für die Variablen.

In der Informatik weiß man jedoch häufig nicht, wie viele Male eine bestimmte Befehlsfolge wiederholt wird, z.B. weil dies vom Benutzer abhängt. Ein typisches Beispiel ist eine wiederholte Passwort-Eingabe.

In der Regel muss ein Benutzer die Eingabe eines Passworts so lange wiederholen, bis er oder sie das richtige Passwort eingegeben hat. Solange also das eingegebene Wort ungleich dem richtigen Passwort ist, muss es der Benutzer immer wieder versuchen. Nach einer (hoffentlich kurzen) Reihe von Versuchen, erscheint ein Willkommensgruß auf dem Bildschirm. Genau dies tut das folgende Programm.

Das Wort "while" bedeutet im englischen "solange"; soweit ist das sehr verständlich. Hinter while steht dann eine Bedingung; in Worten lautet diese: "Die Variable passwort ist ungleich der Zeichenkette "quertzu42"." Zusammen mit while bedeutet also die Zeile:

"Solange die Variable passwort ungleich der Zeichenkette "quertzu42" ist, tue folgendes: ..."

Wie bei den Zählschleifen auch werden nach der Zeile while ... alle weiteren eingerückten Zeilen wiederholt, solange die hinter while stehende Bedingung erfüllt ist.

Innerhalb der Bedingung sieht hier das Symbol != etwas ungewöhnlich aus. Der Hintergrund ist jedoch ganz einfach: In der Mathematik gibt es ein Symbol für "ungleich", nämlich: "$\neq$". Auf der Computertastatur gibt es dieses Symbol jedoch nicht. Also wird zuerst das Ausrufezeichen geschrieben, das dann (allerdings nur in unserer Phantasie) das Gleichheitszeichen durchstreicht.

Zu den Klammern um die Bedingung: In Python muss man Bedingungen zwar nicht in Klammern schreiben (in anderen Programmiersprachen schon), jedoch machen die Klammern das Programm häufig deutlich übersichtlicher.

Gleichheit und Ungleichheit als einfache Bedingungen

Bei Zeichenketten (strings) wird man in der Regel testen, ob sie gleich oder eben nicht gleich sind. Im obigen Fall haben wir auf Ungleichheit getestet und dabei den Vergleichsoperator != verwendet.

Wenn man auf Gleichheit testenwill, muss man extrem aufpassen: Aus der Mathematik würde es nahe liegen, hier einfach = zu schreiben. Tatsächlich aber muss man hier zwei Gleichheitszeichen == schreiben und nicht nur eines.

Ein einzelnes Gleichheitszeichen haben wir bei Zuweisungen verwendet. So hat nach dem Befehl x=42 die Variable x den Wert 42, egal, was sie vorher für einen Wert hatte. Wenn wir dagegen in einer Bedingung (z.B. in einer while-Schleife) schreiben x==42, so prüft Python nur, ob die Variable tatsächlich den Wert 42 hat. Der Wert der Variable ändert sich dadurch nicht.

Mit Zahlen funktionieren die Vergleichsoperatoren für gleich und ungleich ganz genauso, was du in den folgenden Aufgaben ausprobieren kannst.

Aufgabe 1: Zahlenraten

In einem einfachen Spiel soll jemand eine Zahl zwischen 1 und 10 raten. Die Zahl soll dabei zunächst zufällig erzeugt werden. Danach soll der Benutzer (der Spieler) solange raten dürfen, bis er diese Zahl erraten hat.

Aufgabe 2: Lernspiel: Zahlen schätzen

Erweitere das Programm so, dass die zufällige Zahl als Punkt auf einem Zahlenstrahl angezeigt wird. Bei jeder Eingabe des Spielers soll dessen Eingabe ebenfalls (mit einer anderen Farbe) auf dem Strahl angezeigt werden. Auf diese Weise erhalten wir ein Lernspiel, bei dem Grundschüler ein Gefühl für die Größe von Zahlen entwickeln können.

Aufgabe 3: For-Schleife ersetzen

Ersetze in dem unteren Programm die for-Schleife durch eine while-Schleife.

Suche

v
100.102.4.2
dev.inf-schule.de/entwuerfe/python_online/wiederholungen/while-schleifen
dev.inf-schule.de/100.102.4.2
dev.inf-schule.de/@/page/UQ7WEDAoMowlAr2m

Rückmeldung geben