While-Schleife in Python. Funktionsweise, Anwendungsbeispiele

Schleifen sind eines der Hauptwerkzeuge jeder Sprache. Es gibt zwei grundlegende Schleifen in Python, von denen eine while ist. Betrachten Sie es, und auch zum besseren Verständnis des Bildes, noch einmal. In der Tat ist es im Vergleich zu etwas Ähnlichem viel einfacher, jedes Material zu verstehen, nicht wahr?

Das Konzept eines Zyklus

Eine Schleife wird benötigt, wenn eine bestimmte Aktion mehrmals ausgeführt werden muss. Das ist sehr vereinfacht, denn in Wirklichkeit ist das Anwendungsspektrum von Fahrrädern viel größer. Es gibt zwei Haupttypen von Schleifen in Python: for und while. Am beliebtesten ist z.

Zusätzlich zu bestimmten Aktionen können Sie verschiedene Codeteile bis zu einem bestimmten Punkt wiederholen. Dies kann eine bestimmte Anzahl von Malen sein oder so lange, wie eine bestimmte Bedingung wahr ist.

Bevor wir beginnen, die Arten von Schleifen zu verstehen, müssen wir insbesondere noch verstehen, was Iteration ist. Dies ist eine Wiederholung einer Aktion oder Aktionsfolge während des aktuellen Zyklus innerhalb des aktuellen Anwendungslaufs.

Zyklus für

Unsere For-Schleife ist kein Zähler, wie in vielen anderen Sprachen. Seine Aufgabe ist es, eine bestimmte Folge von Werten aufzuzählen. Was bedeutet das? Nehmen wir an, wir haben eine Liste von Elementen. Zuerst nimmt die Schleife die erste, zweite, dritte und so weiter.

Der Vorteil dieser Schleife in Python besteht darin, dass Sie den Index des Elements nicht bestimmen müssen, um zu wissen, wann die Schleife beendet werden muss. Alles wird automatisch erledigt.

>>> Spisok = [10, 40, 20, 30]

>>> für Element in Spisok:

… print(Element + 2)

...

12

42

22

32

In unserem Beispiel haben wir die Variable verwendet Element nach dem for-Befehl. Im Allgemeinen kann der Name alles sein. Eine gebräuchliche Bezeichnung ist zum Beispiel i. Und bei jeder Iteration wird dieser Variable ein bestimmtes Objekt aus der Liste zugewiesen, das wir das entsprechende Wort genannt haben.

In unserem Fall ist die Liste eine Zahlenfolge 10,40,20,30. Bei jeder Iteration erscheint der entsprechende Wert in der Variablen. Beispielsweise wird, sobald die Schleife beginnt, die Variable Element der Wert 10 wird zugewiesen. Beim nächsten Durchlauf wird die Zehn zur Zahl 40, beim dritten Mal zur Zahl 20 und schließlich beim letzten Durchlauf der Schleife zur 30.

Das Signal für das Ende des Zyklus ist das Ende der Elemente in der Liste.

Wenn Sie die Schleife benötigen, um eine klassische Aufzählung von Werten durchzuführen, wie in anderen Programmiersprachen, sollten Sie eine Liste mit einer Folge natürlicher Zahlen bis zu dem Wert erstellen, den wir benötigen.

>>> Spisok = [1,2,3,4,5]

Oder nutzen Sie die Funktion len(), um die Länge der Liste zu bestimmen. Aber in diesem Fall ist es besser, eine Schleife zu verwenden während, weil es keine Notwendigkeit gibt, eine Variable zu verwenden.

Wenn Sie die Reihenfolge der Werte in der Liste ändern müssen, führen Sie eine Schleife aus für und hier kommt die Rettung. Dazu muss bei jeder Iteration jedem Element der Liste ein entsprechender Wert zugewiesen werden.

While-Schleife

Im Gegensatz zum Kreislauf für, die einfach über die Werte der Sequenz iteriert, die Schleife während hat mehr Verwendung. Der Name dieser Art von Zyklen wird mit „noch“ übersetzt. Also „bis“.

Dies ist eine universelle Schleife, die in allen Programmiersprachen zu finden ist. Und in gewisser Weise ähnelt es einem bedingten Operator Eibe, die eine Prüfung durchführt, um zu sehen, ob eine bestimmte Bedingung erfüllt ist. Nur im Gegensatz zum Bedingungsoperator während führt die Prüfung bei jeder Iteration durch, nicht nur einmal. Und nur wenn die Bedingung falsch ist, endet die Schleife und der folgende Befehl wird ausgeführt. Mit einfachen Worten, wenn die Situation, in der er arbeitet, nicht mehr gültig ist.

Wenn wir einen Zyklus zeichnen während Vereinfacht gesagt wird dies unter Verwendung eines solchen Schemas durchgeführt.While-Schleife in Python. Funktionsweise, Anwendungsbeispiele

Der Hauptzweig des Programms (der außerhalb der Schleife läuft) ist in dieser Abbildung mit blauen Rechtecken dargestellt. Türkis repräsentiert den Körper des Zyklus. Eine Raute wiederum ist eine Bedingung, die bei jeder Iteration überprüft wird.

Zyklus während kann zu zwei Ausnahmen führen:

  1. Wenn der logische Ausdruck am Anfang der Schleife nicht wahr zurückgibt, beginnt er einfach nicht, da er vor der Ausführung abgeschlossen wurde. Im Allgemeinen ist diese Situation normal, da die Anwendung unter bestimmten Umständen das Vorhandensein von Ausdrücken im Schleifenrumpf nicht vorsieht.
  2. Wenn der Ausdruck immer wahr ist, kann dies zu einer Schleife führen. Das heißt, zum endlosen Scrollen des Zyklus. Daher sollte es in solchen Programmen immer eine Exit-Anweisung aus der Schleife oder dem Programm geben. Diese Situation tritt jedoch auf, wenn das Programm die Wahrheit oder Falschheit einer bestimmten Bedingung feststellen konnte. Wenn sie dies nicht tut, wird beim Beenden des Programms ein Fehler zurückgegeben. Oder Sie behandeln den Fehler, und wenn er auftritt, wird ein bestimmter Code ausgeführt.

Es kann eine Vielzahl von Optionen geben, wie mit einem Fehler umgegangen werden kann. Beispielsweise kann das Programm den Benutzer auffordern, Daten korrekt einzugeben. Wenn also eine Person eine negative Zahl angegeben hat, wo sie nur positiv sein kann, oder Buchstaben eingegeben hat, wo nur Zahlen sein sollten, kann das Programm darüber berichten.

Beispiele für While-Schleifen

Hier ist ein Codebeispiel, das einen Fehler in diesem Fall behandelt.

n = input(“Geben Sie eine ganze Zahl ein: “) 

while type(n) != int:

    versuchen:

        n = int(n)

    außer ValueError:

        print(“Falsche Eingabe!”)

        n = input(“Geben Sie eine ganze Zahl ein: “) 

wenn n % 2 == 0:

    drucken ("Eben")

sonst:

    drucken ("ungerade")

Denken Sie daran, dass Python Doppelpunkte verwendet, um komplexe Codekonstrukte zu deklarieren.

Im obigen Code haben wir als Bedingung definiert, dass wir prüfen sollten, ob die Zahl eine ganze Zahl ist. Falls ja, wird false zurückgegeben. Wenn nicht, dann wahr.

Im zweiten Teil des Codes, wo der Operator verwendet wird if, haben wir den Operator % verwendet, um den Rest nach der Divisionsoperation zu finden. Der nächste Schritt besteht darin, zu prüfen, ob die Zahl gerade ist. Wenn nicht, dann ist der Rest in diesem Fall eins. Dementsprechend ist die Zahl ungerade. 

Vereinfacht gesagt überprüft der obige Code zunächst, ob die vom Benutzer eingegebene Zeichenfolge eine Zahl ist. Wenn ja, dann wird eine zweite Prüfung durchgeführt, um zu sehen, ob es einen Rest der Division durch zwei gibt. Der zweite Block wird jedoch erst ausgeführt, wenn der vom Benutzer eingegebene Wert numerisch ist.

Das heißt, die Schleife wird regelmäßig ausgeführt, bis die Bedingung eintritt. In dieser Situation funktioniert es so. 

Das heißt, Sie können vom Gegenteil ausgehen: eine bestimmte Aktion wiederholen, bis das Ereignis falsch wird.

Code-Parsing

Sehen wir uns nun genauer an, wie dieser Code funktioniert. Dazu werden wir es Schritt für Schritt analysieren.

  1. Zunächst gibt der Benutzer einen String ein, der von der Variablen n übernommen wird. 
  2. Verwenden einer Schleife während der Typ dieser Variablen wird überprüft. Beim ersten Eintrag ist es nicht gleich int. Daher wird als Ergebnis des Tests herausgefunden, dass diese Bedingung wahr ist. Daher wird der Schleifenkörper eingegeben.
  3. Mit Hilfe eines Operators versuchen Wir versuchen, eine Zeichenfolge in eine Zahl umzuwandeln. Ist dies geschehen, tritt kein Fehler auf. Dementsprechend besteht keine Notwendigkeit, es zu verarbeiten. Daher kehrt der Interpreter zum Anfang der Schleife zurück, und gemäß den Ergebnissen der Überprüfung stellt sich heraus, dass es sich um eine Ganzzahl handelt. Gehen wir also zu Schritt 7
  4. Wenn die Konvertierung nicht erfolgreich war, wird ein ValueError geworfen. In diesem Fall wird der Programmablauf an den Except-Handler gesendet.
  5. Der Benutzer gibt einen neuen Wert ein, der der Variablen n zugewiesen wird.
  6. Der Interpreter kehrt zu Schritt 2 zurück und prüft erneut. Wenn es sich um einen ganzzahligen Wert handelt, fahren Sie mit Schritt 7 fort. Wenn nicht, wird die Konvertierung gemäß Schritt 3 erneut versucht.
  7. Mit Hilfe eines Operators if Bestimmt, ob nach dem Teilen einer Zahl durch 2 ein Rest bleibt. 
  8. Wenn nicht, wird der Text „gerade“ zurückgegeben.
  9. Wenn nicht, wird der Text „ungerade“ zurückgegeben.

Betrachten Sie nun ein solches Beispiel. Versuchen Sie zu bestimmen, wie oft dieser Zyklus durchlaufen wird?

gesamt = 100 

i = 0

während ich < 5:

    n = int(Eingabe())

    total = total – n

    i = i + 1 

print("Rest", gesamt)

Die richtige Antwort ist 5. Zunächst der Wert der Variablen i - Null. Der Interpreter prüft, ob die Variable gleich ist i 4 oder weniger. Wenn ja, wird der Wert zurückgegeben. was immer dies auch sein sollte., und die Schleife wird entsprechend ausgeführt. Der Wert wird um eins erhöht.

Nach der ersten Iteration wird der Wert der Variablen 1. Es wird eine Überprüfung durchgeführt und das Programm versteht, dass diese Zahl wieder kleiner als 5 ist. Dementsprechend wird der Schleifenkörper zum zweiten Mal ausgeführt. Da die Schritte ähnlich sind, wird auch der Wert um eins erhöht und die Variable ist jetzt gleich 2.

Auch dieser Wert liegt unter fünf. Dann wird die Schleife ein drittes Mal ausgeführt und der Variablen hinzugefügt i 1 und erhält den Wert 3. Dies ist wiederum kleiner als fünf. Und so kommt es zum sechsten Durchlauf der Schleife, bei der der Wert der Variablen i gleich 5 (schließlich war es ursprünglich null, soweit wir uns erinnern). Dementsprechend besteht diese Bedingung den Test nicht, und die Schleife wird automatisch beendet und der Übergang zum nächsten Schritt, der außerhalb davon liegt (oder Programmabbruch, wenn die folgenden Schritte nicht vorgesehen sind), durchgeführt.

Der Kreislauf kann auch in umgekehrter Richtung ablaufen. Hier ist ein Codebeispiel, bei dem bei jeder nachfolgenden Iteration eins vom aktuellen Wert der Variablen subtrahiert wird. 

gesamt = 100 

solange gesamt > 0:

    n = int(Eingabe())

    total = total – n 

print("Ressource erschöpft")

Versuchen Sie zu erraten, was dieses Programm tut! Stellen Sie sich das in einer Variablen vor gesamt Informationen über die Programmressource werden gespeichert. Jedes Mal prüft der Interpreter, ob die Ressource existiert. Wenn nicht, wird der Text „Ressource erschöpft“ angezeigt und das Programm beendet. Und mit jeder Iteration der Schleife verringert sich die Ressource um die Zahl, die der Benutzer angibt.

Und jetzt Hausaufgaben. Versuchen Sie, den obigen Code so zu ändern, dass die Variable physisch nicht negativ werden kann. 

4 Kommentare

  1. si code ahaan usoo gudbi

Hinterlassen Sie uns einen Kommentar