Die while
-Schleife ist ein leistungsstarkes Werkzeug in Python zur Steuerung des Programmablaufs. Im Gegensatz zu for
-Schleifen, die über eine definierte Sequenz iterieren, setzen while
-Schleifen die Ausführung so lange fort, wie eine angegebene Bedingung wahr bleibt. Dies macht sie besonders nützlich, wenn die Anzahl der Iterationen im Voraus nicht bekannt ist.
Inhaltsverzeichnis
- Grundstruktur der While-Schleife
- Steuerung der Schleifenabwicklung:
break
undcontinue
- Das
while-else
-Konstrukt - Praktische Beispiele
- Endlosschleifen vermeiden
Grundstruktur der While-Schleife
Die grundlegende Syntax einer while
-Schleife ist unkompliziert:
while Bedingung:
# Code, der wiederholt ausgeführt werden soll
# ...
Die Bedingung
wird vor jeder Iteration ausgewertet. Wenn sie zu True
ausgewertet wird, wird der eingerückte Codeblock ausgeführt. Wenn sie zu False
ausgewertet wird, wird die Schleife beendet und das Programm fährt mit den Anweisungen nach der Schleife fort.
Steuerung der Schleifenabwicklung: break
und continue
Die Anweisungen break
und continue
bieten eine feinkörnige Steuerung des Schleifenverhaltens:
break
: Beendet die Schleife sofort, unabhängig von der Bedingung.continue
: Überspringt den Rest der aktuellen Iteration und fährt mit der nächsten Iteration fort.
count = 0
while count < 5:
count += 1
if count == 3:
continue # Ausgabe von 3 überspringen
print(count)
while count < 10:
count += 1
if count == 7:
break # Schleife beenden, wenn count 7 ist
print(count)
Das while-else
-Konstrukt
Pythons while
-Schleife unterstützt optional einen else
-Block. Dieser else
-Block wird nur ausgeführt, wenn die Schleife *normal* beendet wird – d.h., wenn die Schleifenbedingung False
wird. Wichtig ist, dass der else
-Block nicht ausgeführt wird, wenn die Schleife mit einer break
-Anweisung beendet wird. Dies bietet eine saubere Möglichkeit, Situationen zu behandeln, in denen eine Aktion nur ausgeführt werden soll, wenn die Schleife ohne Unterbrechung beendet wird.
count = 0
while count < 5:
print(count)
count += 1
else:
print("Schleife normal beendet!")
count = 0
while count < 5:
if count == 3:
break
print(count)
count += 1
else:
print("Schleife wurde NICHT normal beendet!") # Dies wird nicht ausgegeben
Praktische Beispiele
Hier sind einige Beispiele, die praktische Anwendungen von while
-Schleifen zeigen:
Beispiel 1: Validierung der Benutzereingabe
while True:
try:
alter = int(input("Geben Sie Ihr Alter ein: "))
if alter >= 0:
break # Schleife beenden, wenn ein gültiges Alter eingegeben wurde
else:
print("Alter kann nicht negativ sein.")
except ValueError:
print("Ungültige Eingabe. Bitte geben Sie eine Zahl ein.")
print(f"Ihr Alter ist: {alter}")
Beispiel 2: Simulation eines Countdowns
import time
countdown = 10
while countdown > 0:
print(countdown)
time.sleep(1) # 1 Sekunde pausieren
countdown -= 1
print("Start!")
Endlosschleifen vermeiden
Eine häufige Falle bei while
-Schleifen ist die Erstellung einer Endlosschleife – eine Schleife, die niemals beendet wird. Dies geschieht normalerweise, wenn die Schleifenbedingung niemals False
wird. Stellen Sie immer sicher, dass Ihre Schleifenbedingung irgendwann zu False
ausgewertet wird. Untersuchen Sie die Logik Ihrer Schleife sorgfältig und stellen Sie sicher, dass die Variablen, die die Bedingung beeinflussen, innerhalb des Schleifenkörpers entsprechend aktualisiert werden.