While-Schleife
Teil des Abschnitts Fundamentals der Python-Journey von Coddy — Lektion 36 von 77.
Eine while-Schleife unterscheidet sich von der for-Schleife. Eine for-Schleife ermöglicht es uns, über einen bestimmten range zu iterieren, während eine while-Schleife es uns ermöglicht, so lange weiter zu iterieren, wie eine bestimmte Bedingung erfüllt ist.
Um eine while-Schleife zu verwenden, schreibe:
while condition:
codeDer Code wird nur ausgeführt, wenn die Bedingung True ist.
Die Bedingung wird normalerweise mit Vergleichsoperatoren gebildet, wie zum Beispiel <= (kleiner oder gleich), >= (größer oder gleich), < (kleiner als), > (größer als) oder == (gleich). Die Schleife läuft weiter, solange dieser Vergleich als True ausgewertet wird, und stoppt, sobald er False wird.
Innerhalb des Schleifenkörpers müssen Sie normalerweise die überprüfte Variable aktualisieren. Dies geschieht mit erweiterten Zuweisungsoperatoren wie += (Addieren und Zuweisen), -= (Subtrahieren und Zuweisen), *= (Multiplizieren und Zuweisen) oder /= (Dividieren und Zuweisen). Zum Beispiel ist x *= 2 eine Kurzschreibweise für x = x * 2. Ohne die Aktualisierung der Variablen würde sich die Bedingung nie ändern und die Schleife würde ewig laufen.
Es gibt viele Anwendungsfälle, in denen ein while das Problem lösen würde, aber die for-Schleife nicht.
Betrachten Sie zum Beispiel dieses Problem:
Finden Sie die kleinste Zweierpotenz, die größer als eine gegebene Zahl ist.
Um dies zu lösen, verwenden wir eine while-Schleife, die die aktuelle Zweierpotenz wiederholt mit 2 multipliziert, bis sie größer als die angegebene Zahl ist:
number = 27
power_of_two = 1
while power_of_two <= number:
power_of_two *= 2
print(power_of_two)Hier ist power_of_two <= number die Bedingung, die einen Vergleichsoperator verwendet, und power_of_two *= 2 aktualisiert die Variable in jeder Iteration unter Verwendung eines erweiterten Zuweisungsoperators. Sobald power_of_two den Wert von number übersteigt, wird die Bedingung zu False und die Schleife stoppt.
Aufgabe
AnfängerSchreibe ein Programm, das eine Eingabe erhält, eine float-Zahl.
Verwende eine while-Schleife, um die Eingabe so lange durch 2 zu teilen, wie die Zahl größer oder gleich 3.5 ist.
Gib die erste Zahl aus, die kleiner als 3.5 ist.
Spickzettel
Eine while-Schleife läuft, solange eine Bedingung True ist:
while condition:
codeVerwenden Sie Vergleichsoperatoren, um die Bedingung zu bilden: ==, <, >, <=, >=.
Verwenden Sie erweiterte Zuweisungsoperatoren, um die Variable bei jeder Iteration zu aktualisieren: +=, -=, *=, /=.
number = 27
power_of_two = 1
while power_of_two <= number:
power_of_two *= 2 # Variable aktualisieren, um eine Endlosschleife zu vermeiden
print(power_of_two) # 32Probier es selbst
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Fundamentals
4Operatoren Teil 2
Logische Operatoren Teil 1Logische Operatoren Teil 2Wiederholung – Einfache LogikLogische Operatoren Teil 3Logische Operatoren Teil 42Variablen
ZahlenStringsBooleanBenennungskonventionenLeere VariablenRückblick - Variablen initialisieren5Entscheidungsfindung
If-AnweisungIf - ElseWiederholung - Einfacher TaschenrechnerVerschachteltes If - Else8Schleifen
For-SchleifeWhile-SchleifeBreakContinueWiederholung - FakultätDie Range-FunktionVerschachtelte SchleifeWiederholung - Dynamische Eingabe3Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorArithmetische AbkürzungenWiederholung – Einfache MathematikVergleichsoperatoren6Grundlagen Ein- und Ausgabe
AusgabeAusgabe mit VariablenEingabeTypumwandlungWiederholung - Bis 120Wiederholung - Wahr oder Falsch9Funktionen
Funktion deklarierenArgumenteRückgabeWiederholung - Sigma-FunktionWiederholung - ValidierungsfunktionStandardwerte12Iterieren über Sequenzen
Iterieren über ElementeDie Enumerate-FunktionIterieren über Strings Teil 1Iterieren über Strings Teil 2