Kurz: Eine Schleife wiederholt Code. Die while-Schleife läuft, solange eine Bedingung wahr ist. Sie prüft die Bedingung vor jedem Durchlauf.
Teil des Kurses Python
Eine Schleife wiederholt Code. Die while-Schleife läuft, solange eine Bedingung wahr ist. Sie prüft die Bedingung vor jedem Durchlauf.
zaehler = 1
while zaehler <= 5:
print("Durchlauf", zaehler)
zaehler += 1
print("Fertig")Ausgabe:
Durchlauf 1
Durchlauf 2
Durchlauf 3
Durchlauf 4
Durchlauf 5
FertigWichtig ist, dass sich innerhalb der Schleife etwas ändert (hier zaehler += 1). Sonst bleibt die Bedingung für immer wahr, und das Programm läuft endlos. Mit Strg + C brichst du ein hängendes Programm im Terminal ab.
Summen und Zähler
summe = 0
zahl = 1
while zahl <= 100:
summe += zahl
zahl += 1
print("Summe von 1 bis 100:", summe)Ausgabe:
Summe von 1 bis 100: 5050break: Schleife vorzeitig verlassen
n = 0
while True: # scheinbar endlos ...
n += 1
if n * n > 200:
break # ... wird hier beendet
print("Erste Zahl mit Quadrat über 200:", n)Ausgabe:
Erste Zahl mit Quadrat über 200: 15while True: zusammen mit break ist ein verbreitetes Muster, wenn man erst mitten im Durchlauf weiß, ob man aufhören muss, etwa bei Benutzereingaben.
continue: zum nächsten Durchlauf springen
i = 0
while i < 8:
i += 1
if i % 2 == 0:
continue # gerade Zahlen überspringen
print(i)Ausgabe:
1
3
5
7else bei Schleifen
Ein else-Block läuft, wenn die Schleife normal endet, also nicht durch break:
versuche = 0
while versuche < 3:
versuche += 1
else:
print("Schleife ohne break beendet nach", versuche, "Versuchen")Ausgabe:
Schleife ohne break beendet nach 3 VersuchenEingabe-Schleife (Muster)
Dieses Muster fragt so lange nach, bis die Eingabe stimmt (hier mit simulierten Eingaben, damit das Beispiel ohne Tastatur läuft):
antworten = iter(["abc", "-4", "7"]) # simuliert, was der Benutzer tippt
while True:
eingabe = next(antworten)
if eingabe.isdigit():
zahl = int(eingabe)
break
print(f"'{eingabe}' ist keine gültige Zahl, bitte erneut")
print("Eingegeben:", zahl)Ausgabe:
'abc' ist keine gültige Zahl, bitte erneut
'-4' ist keine gültige Zahl, bitte erneut
Eingegeben: 7Im echten Programm steht dort eingabe = input("Zahl: ").
Merke
while bedingung:wiederholt, solange die Bedingung wahr ist- In der Schleife muss sich etwas ändern, sonst läuft sie endlos
breakbeendet die Schleife,continuespringt zum nächsten Durchlaufelseläuft nur, wenn nicht perbreakabgebrochen wurdewhile True+breakfür Eingabe-Schleifen
Übungsaufgabe
Gib die Zweierpotenzen 1, 2, 4, 8, … aus, solange sie kleiner als 1000 sind.
Quiz zur Selbstkontrolle
Wann endet eine while-Schleife?
- Wenn die Bedingung falsch wird oder break ausgeführt wird (richtig)
- Nach genau zehn Durchläufen
- Sobald das Programm am Ende der Datei ist
- Nie von selbst
Was bewirkt continue?
- Es springt zum nächsten Schleifendurchlauf (richtig)
- Es beendet die Schleife
- Es beendet das Programm
- Es wiederholt den aktuellen Durchlauf
Wie beendest du ein hängendes Programm im Terminal?
- Mit Strg + C (richtig)
- Mit Strg + S
- Mit Esc
- Mit Enter
Weiter im Kurs
Zurück: Bedingungen mit if
Weiter: Die for-Schleife und range()
Alle Kapitel: Python im Überblick