logo

Python While-Schleife

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

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!>