Informationen zu while-Schleifen

Abgeschlossen

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.