Informationen zu while-Schleifen
Beim Schreiben von Code besteht eine häufige Herausforderung darin, eine Aufgabe eine unbekannte Anzahl von Malen ausführen zu lassen. In dieser Lerneinheit möchten Sie einem Benutzer die Möglichkeit geben, eine Liste von Planetennamen einzugeben. Leider wissen Sie nicht, wie viele Namen die Benutzer*innen eingeben. Um das Ausführen einer unbekannten Anzahl von Schleifen zu unterstützen, können Sie eine while
-Schleife verwenden.
Eine while
-Schleife führt einen Vorgang aus, während (while) eine bestimmte Bedingung erfüllt ist. Sie können eine while
-Schleife für folgende Zwecke verwenden:
- Suchen Sie in einer Datei nach einer anderen Zeile.
- Prüfen Sie, ob ein Flag festgelegt wurde.
- Prüfen Sie, ob ein Benutzer die Eingabe von Werten abgeschlossen hat.
- Prüfen Sie, ob sich etwas anderes geändert hat, um anzugeben, dass der Code die Ausführung des Vorgangs beenden kann.
Wichtig
Wenn Sie while
-Schleifen erstellen, müssen Sie vor allem darauf achten, dass sich die Bedingung ändert. Wenn die Bedingung immer „true“ (wahr) ergibt, wird Python Ihren Code so lange ausführen, bis das Programm abstürzt.
Die Syntax einer while
-Schleife ist ähnlich wie die einer if
-Anweisung. Sie geben sowohl eine Bedingung als auch den Code an, den Sie ausführen möchten, wenn die Bedingung erfüllt ist.
Eine while
-Schleife besteht aus drei wichtigen Teilen:
Das Schlüsselwort
while
, gefolgt von einem Leerzeichen.Bedingung, die Sie testen: Wenn die Bedingung „true“ entspricht, wird der Code innerhalb der
while
-Schleife ausgeführt.Der Code, den Sie für jede Iteration ausführen möchten, eingerückt mit geschachtelten Leerzeichen. Beispiel:
while <condition>: # code here
Sehen wir uns an, wie Sie Code erstellen können, um Benutzer zur Eingabe von Werten aufzufordern und ihnen dann zu erlauben, done (fertig) einzugeben, wenn sie die Eingabe der Werte abgeschlossen haben. In unserem Beispiel ist die Benutzereingabe die Bedingung, die am Anfang der while
-Schleife getestet wird.
user_input = ''
while user_input.lower() != 'done':
user_input = input('Enter a new value, or done when done')
Beachten Sie, dass Sie input
zum Auffordern der Benutzer verwenden. Jedes Mal, wenn der Benutzer einen neuen Wert eingibt, ändert er die Bedingung, was bedeutet, dass die while
-Schleife nach der Eingabe von done (fertig) beendet wird.
Hinweis
In unserem Beispiel haben wir lower
verwendet, um die Eingabe in Kleinbuchstaben umzuwandeln, was einen Vergleich ohne Berücksichtigung der Groß- und Kleinschreibung ermöglicht.
Sie können die neu eingegebene Zeichenfolge wie jede andere Zeichenfolge verwenden, die mit input
erfasst wird. Wenn Sie sie zu einer Liste hinzufügen möchten, können Sie einen Code verwenden, der dem folgenden Beispiel ähnelt:
# Create the variable for user input
user_input = ''
# Create the list to store the values
inputs = []
# The while loop
while user_input.lower() != 'done':
# Check if there's a value in user_input
if user_input:
# Store the value in the list
inputs.append(user_input)
# Prompt for a new value
user_input = input('Enter a new value, or done when done')
Beachten Sie die if
-Anweisung innerhalb der while
-Schleife. Diese Anweisung testet auf einen Zeichenfolgenwert in user_input
. Wenn die while
-Schleife zum ersten Mal ausgeführt wird, gibt es keinen Wert, sodass nichts in inputs
gespeichert werden muss. Nachdem sie zum ersten Mal ausgeführt wurde, behält user_input
immer den Wert, den die Benutzer*innen eingegeben haben. Da while
getestet wird, um sicherzustellen, dass der Wert nicht gleich done
ist (das Wort, das die Benutzer*innen eingeben, um die App zu beenden), wissen Sie, dass der aktuelle Wert einer ist, den Sie der Liste hinzufügen können.
Hinweis
Sie sind vielleicht mit anderen Programmiersprachen vertraut, die eine do
-Schleife unterstützen, mit der Sie einen Test am Ende der Schleife durchführen können. Python stellt keine do
-Schleife zur Verfügung.