Python While-Schleife wird verwendet, um einen Anweisungsblock wiederholt auszuführen, bis eine bestimmte Bedingung erfüllt ist. Wenn die Bedingung falsch wird, wird die Zeile unmittelbar nach der Schleife im Programm ausgeführt.
Syntax der While-Schleife in Python
while expression: statement(s)>
Flussdiagramm der Python While-Schleife
While-Schleife fällt in die Kategorie von unbestimmte Iteration . Unbestimmte Iteration bedeutet, dass die Häufigkeit, mit der die Schleife ausgeführt wird, nicht explizit im Voraus angegeben wird.
Anweisungen stellen alle um die gleiche Anzahl von Leerzeichen eingerückten Anweisungen dar, nachdem ein Programmierkonstrukt als Teil eines einzelnen Codeblocks betrachtet wird. Python verwendet Einrückungen als Methode zum Gruppieren von Anweisungen. Wenn eine while-Schleife ausgeführt wird, wird expr zunächst in einem booleschen Kontext ausgewertet und wenn es wahr ist, wird der Schleifenkörper ausgeführt. Dann wird der Ausdruck erneut überprüft. Wenn er immer noch wahr ist, wird der Körper erneut ausgeführt und dies wird fortgesetzt, bis der Ausdruck falsch wird.
Unterschied zwischen Python For-Schleife und Python While-Schleife
Der Hauptunterschied zwischen der Python-For-Schleife und der Python-While-Schleife besteht darin, dass die Python-for-Schleife normalerweise verwendet wird, wenn die Anzahl der Iterationen beträgt bekannt , während die Python-while-Schleife verwendet wird, wenn die Anzahl der Iterationen beträgt Unbekannt
Python While-Schleife
In diesem Beispiel ist die Bedingung für while wahr, solange die Zählervariable (Anzahl) kleiner als 3 ist.
Python
# Python program to illustrate> # while loop> count>=> 0> while> (count <>3>):> >count>=> count>+> 1> >print>(>'Hello Geek'>)> |
>
>Ausgabe
Hello Geek Hello Geek Hello Geek>
Unendliche While-Schleife in Python
Hier ist der Wert der Bedingung immer True. Daher wird der Schleifenkörper unendlich oft ausgeführt, bis der Speicher voll ist.
Python
age>=> 28> > # the test condition is always True> while> age>>19>:> >print>(>'Infinite Loop'>)> |
>
nummeriertes Alphabet
>
Steueranweisungen in Python mit Beispielen
Schleifensteueranweisungen ändern die Ausführung von ihrer normalen Reihenfolge. Wenn die Ausführung einen Bereich verlässt, werden alle in diesem Bereich erstellten automatischen Objekte zerstört. Python unterstützt die folgenden Steueranweisungen.
Python-while-Schleife mit continue-Anweisung
Python Fortsetzungserklärung gibt die Steuerung an den Anfang der Schleife zurück.
Python
# Prints all letters except 'e' and 's'> i>=> 0> a>=> 'geeksforgeeks'> > while> i <>len>(a):> >if> a[i]>=>=> 'e'> or> a[i]>=>=> 's'>:> >i>+>=> 1> >continue> > >print>(>'Current Letter :'>, a[i])> >i>+>=> 1> |
>
>Ausgabe
Current Letter : g Current Letter : k Current Letter : f Current Letter : o Current Letter : r Current Letter : g Current Letter : k>
Python-while-Schleife mit einer break-Anweisung
Python Break-Anweisung bringt die Kontrolle aus der Schleife.
Python
# break the loop as soon it sees 'e'> # or 's'> i>=> 0> a>=> 'geeksforgeeks'> > while> i <>len>(a):> >if> a[i]>=>=> 'e'> or> a[i]>=>=> 's'>:> >i>+>=> 1> >break> > >print>(>'Current Letter :'>, a[i])> >i>+>=> 1> |
>
>Ausgabe
Current Letter : g>
Python-while-Schleife mit einer pass-Anweisung
Die Python-Pass-Anweisung zum Schreiben leerer Schleifen. Pass wird auch für leere Steueranweisungen, Funktionen und Klassen verwendet.
Python
# An empty loop> a>=> 'geeksforgeeks'> i>=> 0> > while> i <>len>(a):> >i>+>=> 1> >pass> > print>(>'Value of i :'>, i)> |
>
>Ausgabe
Value of i : 13>
While-Schleife mit else
Wie oben erläutert, führt die While-Schleife den Block aus, bis eine Bedingung erfüllt ist. Wenn die Bedingung falsch wird, wird die Anweisung unmittelbar nach der Schleife ausgeführt. Die else-Klausel wird nur ausgeführt, wenn Ihre while-Bedingung falsch wird. Wenn Sie aus der Schleife ausbrechen oder eine Ausnahme ausgelöst wird, wird diese nicht ausgeführt.
Notiz: Der else-Block unmittelbar nach for/while wird nur ausgeführt, wenn die Schleife NICHT durch eine break-Anweisung beendet wird.
Python
# Python program to demonstrate> # while-else loop> > i>=> 0> while> i <>4>:> >i>+>=> 1> >print>(i)> else>:># Executed because no break in for> >print>(>'No Break
'>)> > i>=> 0> while> i <>4>:> >i>+>=> 1> >print>(i)> >break> else>:># Not executed as there is a break> >print>(>'No Break'>)> |
>
>Ausgabe
1 2 3 4 No Break 1>
Sentinel-kontrollierte Erklärung
Dabei verwenden wir keine Zählervariable, da wir nicht wissen, wie oft die Schleife ausgeführt wird. Hier entscheidet der Benutzer, wie oft er die Schleife ausführen möchte. Hierzu verwenden wir einen Sentinel-Wert. Ein Sentinel-Wert ist ein Wert, der verwendet wird, um eine Schleife zu beenden, wenn ein Benutzer sie betritt. Im Allgemeinen ist der Sentinel-Wert -1.
Python-while-Schleife mit Benutzereingabe
Hier wird der Benutzer zunächst aufgefordert, eine Zahl einzugeben. Wenn der Benutzer -1 eingibt, wird die Schleife nicht ausgeführt, d. h.
- Der Benutzer gibt 6 ein und der Hauptteil der Schleife wird ausgeführt und fordert erneut zur Eingabe auf
- Hier kann der Benutzer viele Male Eingaben machen, bis er -1 eingibt, um die Schleife zu stoppen
- Der Benutzer kann entscheiden, wie oft er Eingaben machen möchte
Python
a>=> int>(>input>(>'Enter a number (-1 to quit): '>))> > while> a !>=> ->1>:> >a>=> int>(>input>(>'Enter a number (-1 to quit): '>))> |
>
>
Ausgabe:

Ausgabebildschirmbild
While-Schleife mit booleschen Werten
Eine häufige Verwendung von booleschen Werten in While-Schleifen besteht darin, eine Endlosschleife zu erstellen, die nur aufgrund einer Bedingung innerhalb der Schleife verlassen werden kann.
Beispiel :
In diesem Beispiel initialisieren wir einen Zähler und verwenden dann eine Endlosschleife (Wahr ist immer wahr), um den Zähler zu erhöhen und seinen Wert auszugeben. Wir prüfen, ob der Zähler einen bestimmten Wert erreicht hat und verlassen in diesem Fall die Schleife mit der break-Anweisung.
Python
# Initialize a counter> count>=> 0> > # Loop infinitely> while> True>:> ># Increment the counter> >count>+>=> 1> >print>(f>'Count is {count}'>)> > ># Check if the counter has reached a certain value> >if> count>=>=> 10>:> ># If so, exit the loop> >break> > # This will be executed after the loop exits> print>(>'The loop has ended.'>)> |
>
>Ausgabe
Count is 1 Count is 2 Count is 3 Count is 4 Count is 5 Count is 6 Count is 7 Count is 8 Count is 9 Count is 10 The loop has ended.>
Python-While-Schleife mit Python-Liste
In diesem Beispiel haben wir eine While-Schleife über eine Liste ausgeführt, die so lange ausgeführt wird, bis ein Element in der Liste vorhanden ist.
Python
# checks if list still> # contains any element> a>=> [>1>,>2>,>3>,>4>]> > while> a:> >print>(a.pop())> |
>
>Ausgabe
4 3 2 1>
Einzelne Anweisung while-Block
Genau wie der if-Block können wir, wenn der while-Block aus einer einzelnen Anweisung besteht, die gesamte Schleife in einer einzigen Zeile deklarieren. Wenn der Block, aus dem der Schleifenkörper besteht, mehrere Anweisungen enthält, können diese durch Semikolons (;) getrennt werden.
Python
# Python program to illustrate> # Single statement while block> count>=> 0> while> (count <>5>):> >count>+>=> 1> >print>(>'Hello Geek'>)> |
>
>Ausgabe
Hello Geek Hello Geek Hello Geek Hello Geek Hello Geek>
Fragen zu Python-While-Loop-Übungen
Nachfolgend finden Sie zwei Übungsfragen zur Python-while-Schleife. Wir haben zwei wichtige Übungsfragen behandelt, die auf dem Hüpfball-Programm und dem Countdown-Programm basieren.
Q1. While-Loop-Übungsfrage basierend auf dem Problem des springenden Balls
Python
initial_height>=> 10> bounce_factor>=> 0.5> height>=> initial_height> while> height>>0.1>:> >print>(>'The ball is at a height of'>, height,>'meters.'>)> >height>*>=> bounce_factor> print>(>'The ball has stopped bouncing.'>)> |
>
>
Ausgabe
The ball is at a height of 10 meters. The ball is at a height of 5.0 meters. The ball is at a height of 2.5 meters. The ball is at a height of 1.25 meters. The ball is at a height of 0.625 meters. The ball is at a height of 0.3125 meters. The ball is at a height of 0.15625 meters. The ball has stopped bouncing.>
Q2. Einfacher While-Schleifen-Übungscode zum Erstellen einer Countdown-Uhr
Python
countdown>=> 10> while> countdown>>0>:> >print>(countdown)> >countdown>->=> 1> print>(>'Blast off!'>)> |
>
>
Ausgabe
10 9 8 7 6 5 4 3 2 1 Blast off!>