Python 3 - Schleifen
Im Allgemeinen werden Anweisungen nacheinander ausgeführt - Die erste Anweisung in einer Funktion wird zuerst ausgeführt, gefolgt von der zweiten usw. Es kann vorkommen, dass Sie einen Codeblock mehrmals ausführen müssen.
Programmiersprachen bieten verschiedene Steuerungsstrukturen, die kompliziertere Ausführungspfade ermöglichen.
Mit einer Schleifenanweisung können wir eine Anweisung oder eine Gruppe von Anweisungen mehrmals ausführen. Das folgende Diagramm zeigt eine Schleifenanweisung -
Die Programmiersprache Python bietet die folgenden Arten von Schleifen, um die Schleifenanforderungen zu erfüllen.
Sr.Nr. | Schleifentyp & Beschreibung |
---|---|
1 | while-Schleife Wiederholt eine Anweisung oder eine Gruppe von Anweisungen, während eine bestimmte Bedingung WAHR ist. Es testet die Bedingung, bevor der Schleifenkörper ausgeführt wird. |
2 | für Schleife Führt eine Folge von Anweisungen mehrmals aus und verkürzt den Code, der die Schleifenvariable verwaltet. |
3 | verschachtelte Schleifen Sie können eine oder mehrere Schleifen in einer anderen während oder für eine Schleife verwenden. |
Schleifensteuerungsanweisungen
Die Loop-Steueranweisungen ändern die Ausführung von ihrer normalen Reihenfolge. Wenn die Ausführung einen Bereich verlässt, werden alle automatischen Objekte, die in diesem Bereich erstellt wurden, zerstört.
Python unterstützt die folgenden Steueranweisungen.
Sr.Nr. | Steueranweisung & Beschreibung |
---|---|
1 | break-Anweisung Beendet die Schleifenanweisung und überträgt die Ausführung an die Anweisung unmittelbar nach der Schleife. |
2 | Aussage fortsetzen Bewirkt, dass die Schleife den Rest ihres Körpers überspringt und ihren Zustand sofort erneut testet, bevor sie wiederholt wird. |
3 | pass-Anweisung Die pass-Anweisung in Python wird verwendet, wenn eine Anweisung syntaktisch erforderlich ist, Sie jedoch keinen Befehl oder Code ausführen möchten. |
Lassen Sie uns die Schleifensteuerungsanweisungen kurz durchgehen.
Iterator und Generator
Iteratorist ein Objekt, mit dem ein Programmierer unabhängig von seiner spezifischen Implementierung alle Elemente einer Sammlung durchlaufen kann. In Python implementiert ein Iteratorobjekt zwei Methoden:iter() und next().
String-, Listen- oder Tupelobjekte können zum Erstellen eines Iterators verwendet werden.
list = [1,2,3,4]
it = iter(list) # this builds an iterator object
print (next(it)) #prints next available element in iterator
Iterator object can be traversed using regular for statement
!usr/bin/python3
for x in it:
print (x, end=" ")
or using next() function
while True:
try:
print (next(it))
except StopIteration:
sys.exit() #you have to import sys module for this
EIN generator ist eine Funktion, die eine Folge von Werten unter Verwendung der Ertragsmethode erzeugt oder ergibt.
Wenn eine Generatorfunktion aufgerufen wird, gibt sie ein Generatorobjekt zurück, ohne mit der Ausführung der Funktion zu beginnen. Wenn die next () -Methode zum ersten Mal aufgerufen wird, wird die Funktion ausgeführt, bis sie die Yield-Anweisung erreicht, die den Yield-Wert zurückgibt. Der Ertrag behält den Überblick, dh er merkt sich die letzte Ausführung und der zweite next () -Aufruf wird vom vorherigen Wert fortgesetzt.
Beispiel
Das folgende Beispiel definiert einen Generator, der einen Iterator für alle Fibonacci-Zahlen generiert.
#!usr/bin/python3
import sys
def fibonacci(n): #generator function
a, b, counter = 0, 1, 0
while True:
if (counter > n):
return
yield a
a, b = b, a + b
counter += 1
f = fibonacci(5) #f is iterator object
while True:
try:
print (next(f), end=" ")
except StopIteration:
sys.exit()