For-Schleifen in Python: Alles, was Sie wissen müssen
Veröffentlicht: 2022-08-18In diesem Tutorial erfahren Sie anhand von Codebeispielen alles über die Verwendung von for-Schleifen in Python .
Beim Programmieren helfen Ihnen Schleifen dabei, einen bestimmten Satz von Anweisungen zu wiederholen. Sie werden for -Schleifen für bestimmte Iterationen verwenden, wenn:
- Sie wissen, dass Sie mit einer Folge mit einer endlichen Anzahl von Elementen arbeiten werden
- Sie sehen vorher die Anzahl der Wiederholungen
In diesem Tutorial erfahren Sie alles über die Arbeit mit for-Schleifen in Python. Sie beginnen damit, die Syntax und einfache Iterationen mit einer for-Schleife zu lernen. Anschließend erfahren Sie, wie Sie Befehlszeilenargumente verarbeiten, Schleifensteuerungsanweisungen verwenden und vieles mehr.
Lass uns anfangen…
Syntax von Python für Schleife

Die generische Syntax für die Verwendung der for-Schleife in Python lautet wie folgt:
for item in iterable: # do something on item statement_1 statement_2 . . . statement_nIn der obigen Syntax:
- item ist die Schleifenvariable.
- iterable bezeichnet alle iterierbaren Python-Objekte wie Listen, Tupel und Strings.
- statement_1 bis statement_n bezeichnen die Anweisungen im Schleifenrumpf.
Hinweis : Stellen Sie sicher, dass Sie einen Doppelpunkt ( : ) nach dem Namen der Iterable einfügen und alle Anweisungen im Schleifenkörper um vier Leerzeichen einrücken.
Häufig für Schleifenkonstrukte in Python

Bei Verwendung einer for -Schleife:
- Sie können direkt auf die Elemente zugreifen, indem Sie die im vorherigen Abschnitt beschriebene Syntax verwenden.
- Sie können for-Schleife in Verbindung mit integrierten Python-Funktionen wie
range()undenumerate()verwenden.
Wir behandeln sie in diesem Abschnitt.
Verwenden der for-Schleife für den Zugriff auf Elemente
Um die Lesbarkeit zu verbessern, sollten Sie eine Schleifenvariable auswählen, die angibt, was die Liste enthält. Im Beispiel unten ist nums beispielsweise eine Liste von Zahlen, die wir num als Schleifenvariable verwenden. Beachten Sie, wie for num in nums: intuitiv und einfach zu lesen ist.
nums = [4,5,9,1,3] for num in nums: print(num) # Output 4 5 9 1 3 Fügen Sie ein paar weitere Beispiele hinzu, die Sie for fruit in fruits: und for student in students: verwenden können, wenn Sie die fruits bzw. students durchlaufen.
Verwendung der for-Schleife mit der range()-Funktion
Wenn Sie auf ein Listenelement über seinen Index zugreifen möchten, können Sie die Funktion range() verwenden.
In Python gibt
range(start, stop, step)ein Range-Objekt zurück, das Sie durchlaufen können, um die Indizes abzurufen:start,start + stepund so weiter bis einschließlichstop.
for i in range(len(nums)): print(nums[i]) # Output 4 5 9 1 3 Sie können auch die Funktion range() verwenden, um eine Zahlenfolge zu generieren, die durchlaufen werden soll. Im Beispiel unten setzen wir den optionalen step auf 2. Wir erhalten also Zahlen von 10 bis einschließlich 20 in 2er-Schritten.
for i in range(10,20,2): print(i) # Output 10 12 14 16 18Verwendung der for-Schleife mit der enumerate()-Funktion
Wenn Sie eine Iterable durchlaufen und gleichzeitig auf die Elemente und ihre Indizes zugreifen möchten, können Sie die Funktion enumerate() verwenden.
Hier ist ein Beispiel.
for idx, num in enumerate(nums): print(f"{idx}:{num}") # Output 0:4 1:5 2:9 3:1 4:3 
So lesen Sie Elemente aus Listen mit der for-Schleife in Python
Um Python-Listen mit einer for-Schleife zu durchlaufen, können Sie die generische Syntax aus dem vorherigen Abschnitt verwenden.
Im folgenden Beispiel ist nums iterierbar und num ist die Schleifenvariable.
nums = [4,5,9,1,3] for num in nums: print(f"{num} times 3 is {num*3}") # action on each num # Output 4 times 3 is 12 5 times 3 is 15 9 times 3 is 27 1 times 3 is 3 3 times 3 is 9So durchlaufen Sie Strings mit for Loop in Python
Python-Strings sind Iterables und Sie können Schleifen, Indizierung, Slicing und mehr ausführen.
Hinweis : Python hat keinen eingebauten Zeichendatentyp. Sie können also ein Zeichen als eine Zeichenfolge der Länge eins behandeln.
my_string = "Code" for char in my_string: print(char) # Output C o d eSo durchlaufen Sie Arrays mit for Loop in Python

Sie können Arrays mit Schleifen durchlaufen und For-Schleifen verschachteln.
Im folgenden Codeausschnitt ist array1 eine verschachtelte Liste, die kleinere Listen als Elemente enthält. Das Durchschleifen von array1 ergibt also jede Zeile, wie unten gezeigt.
array1 = [[2,3],[7,8]] for row in array1: print(row) # Output [2, 3] [7, 8] Um auf einzelne Elemente in jeder Zeile zuzugreifen, können Sie eine weitere for -Schleife verwenden.
array1 = [[2,3],[7,8]] for row in array1: for elt in row: print(elt)In der obigen Codezelle:
- Die äußere for-Schleife hilft Ihnen, in die Zeilen zu indizieren.
- Die innere for-Schleife ermöglicht es Ihnen, die Elemente in jeder Zeile anzuzapfen.
Hier ist die entsprechende Ausgabe.
Output 2 3 7 8So lesen Sie Befehlszeilenargumente mit der for-Schleife

Als Entwickler sollten Sie kein Problem damit haben, Python-Skripts über die Befehlszeile auszuführen und Befehlszeilenargumente für die Interaktion mit Ihrem Skript zu verwenden.
Sie können die integrierten Module von Python wie sys und argparse verwenden, um Befehlszeilenargumente zu parsen und zu lesen.
In diesem Abschnitt gehen wir darauf ein, wie Sie das sys -Modul und eine for -Schleife verwenden, um die Liste der Befehlszeilenargumente zu durchlaufen.
Im sys-Modul ist sys.argv die Liste der Befehlszeilenargumente, die Sie übergeben. Sie können also sys.argv genauso durchlaufen, wie Sie jede andere Python-Liste durchlaufen würden.
# main.py import sys for arg in sys.argv: print(arg)Sie können das Programm jetzt wie unten gezeigt über die Befehlszeile ausführen.
$ python main.py Hello Python3 main.py Hello Python3 Standardmäßig ist der Name des Moduls das erste Argument und befindet sich am Index Null in sys.argv .
Wenn Sie auf die Indizes und die entsprechenden Argumente zugreifen möchten, können Sie die Funktion range() verwenden.
# main.py import sys for i in range(len(sys.argv)): print(f"arg{i} is {sys.argv[i]}")️ Führen Sie als Nächstes main.py erneut aus.
$ python main.py Hello Python3 arg0 is main.py arg1 is Hello arg2 is Python3Angenommen, Sie möchten andere Argumente als den Modulnamen analysieren und verarbeiten. Sie können den Startwert auf 1 setzen, wie in der Codezelle unten.

# main.py import sys for i in range(1,len(sys.argv)): print(f"arg{i} is {sys.argv[i]}") $ python main.py Hello Python3 arg1 is Hello arg2 is Python3 
Alles zusammengenommen enthält die Datei main.py den folgenden Code.
# main.py import sys print("\nPrinting all command-line arguments...") for arg in sys.argv: print(arg) print("\nPrinting all command-line arguments with index...") for i in range(len(sys.argv)): print(f"arg{i} is {sys.argv[i]}") print("\nPrinting command-line arguments except arg0: module_name...") for i in range(1,len(sys.argv)): print(f"arg{i} is {sys.argv[i]}")Hier ist die Ausgabe, wenn Sie das Modul ausführen.
$ python main.py Hello Python3 Printing all command-line arguments... main.py Hello Python3 Printing all command-line arguments with index... arg0 is main.py arg1 is Hello arg2 is Python3 Printing command-line arguments except arg0: module_name... arg1 is Hello arg2 is Python3Verwendung der Break-Anweisung innerhalb einer Schleife

Wie andere Programmiersprachen unterstützt auch Python die Verwendung von Schleifensteuerungsanweisungen break und continue . Diese Anweisungen können helfen, den Kontrollfluss in Schleifen basierend auf bestimmten Bedingungen zu ändern. Sehen wir uns an, wie man sie in einer for-Schleife verwendet.
Die break the-Anweisung kann verwendet werden, um aus einer Schleife auszubrechen, wenn eine bestimmte Bedingung True ist.
Wir wollen ein Programm schreiben, um Folgendes zu tun:
- Fix
k, die Anzahl der Eingänge. - Verwenden Sie eine
for-Schleife, um Benutzereingaben einzulesen – Ziffer für Ziffer – und summieren Sie die nicht negativen Zahlen (größer oder gleich Null). - Dieser Vorgang sollte fortgesetzt werden, solange der Benutzer nicht negative Zahlen eingibt.
- Wenn der Benutzer eine negative Zahl eingibt, verlassen Sie die Schleife und drucken Sie die Summe aus.
Hier ist der Code, der die obige Aufgabe ausführt.
k= 5 sum = 0 for i in range(k): num = int(input("\nEnter a number: ")) if num<0: break # exit loop when num < 0 sum += num print(sum)Wenn der Benutzer eine Zahl kleiner als Null eingibt, springt das Steuerelement aus der for-Schleife zur ersten Anweisung nach der Schleife.
Enter a number: 2 Enter a number: 3 Enter a number: 5 Enter a number: -1 10Verwendung der Continue-Anweisung innerhalb einer Schleife
Die continue -Anweisung kann verwendet werden, um bestimmte Iterationen abhängig von einer bestimmten Bedingung zu überspringen.
Lassen Sie uns die gleichen Beispiele im vorherigen Abschnitt verwenden.
- Lesen Sie Benutzereingaben ein und berechnen Sie die Summe nicht negativer Zahlen.
- Wenn der Benutzer eine negative Zahl eingibt, überspringen Sie diese Iteration, fahren Sie mit der nächsten Iteration fort und lesen Sie die nächste Zahl ein.
k = 5 sum = 0 for i in range(k): num = int(input("\nEnter a number: ")) if num<0: continue sum += num print(sum)Hier ist eine Beispielausgabe.
Enter a number: 2 Enter a number: 3 Enter a number: 5 Enter a number: -1 Enter a number: 3 13Die vierte Zahl ist -1, was negativ ist. Diesmal geht die for-Schleife jedoch weiter, bis wir die angegebene Anzahl von Eingaben erreicht haben, und ignoriert negative Eingaben. Im Wesentlichen gibt es die Summe aller nicht negativen Zahlen aus den k Eingabezahlen zurück.
Können Sie in Python auf eine unendliche for-Schleife stoßen?

In allen bisher besprochenen Beispielen und Anwendungsfällen sind wir nie auf das Problem einer unendlichen for-Schleife gestoßen. Aber können wir in Python eine unendliche for-Schleife haben?
Betrachten Sie die folgende Funktion double() .
def double(x = 1): return x*2- Wenn Sie die Funktion
double()aufrufen, ohne den Wert vonxanzugeben, wird der Standardwert 1 verwendet. - Wenn Sie im Funktionsaufruf einen Wert für
xangeben, wird dieser Wert verwendet.
double() # Returns: 2 double(20) # Returns: 40 In Python gibt die Funktion iter() ein Iterator-Objekt zurück. Sie können next(iter-obj) , um die Sequenz zu durchlaufen und auf nachfolgende Elemente zuzugreifen.
– Betrachten Sie ein Callable-Object und einen Wert, sentinel .
–
iter(callable-object, sentinel)kann verwendet werden, um eine Iteration durchzuführen, bis der Rückgabewert descallable-objectgleichsentinelist.
Sehen Sie, warum wir in diesem Fall eine unendliche for-Schleife haben können?

Nun, Sie haben ein callable-object und einen sentinel -Wert. Wenn der Rückgabewert des Callable niemals gleich dem Sentinel ist, geht die Schleife endlos weiter!
Lassen Sie uns die obige Funktion als aufrufbares double verwenden und den Sentinel-Wert auf 0 setzen.
Hinweis : Erwähnen Sie den Namen der Funktion double , nicht den Funktionsaufruf double() .
Da der Rückgabewert der Funktion double immer 2 und nie gleich 0 ist, haben wir eine Endlosschleife!
️ Versuchen Sie, die folgende Codezelle auszuführen. Es ist eine unendliche For-Schleife, und Sie müssen das Programm stoppen.
for _ in iter(double,0): print("Running...") 
Python For-Schleifen: Übungsfragen
#1 . Verwenden Sie die for-Schleife, um alle geraden Zahlen im Bereich von 0 bis 20 auszugeben.
Hinweis : Verwenden Sie die Funktion range() mit dem richtigen step .
#2 . Drucken Sie alle geraden Zahlen von 20 bis 0 aus.
Hinweis : Verwenden Sie einen negativen Wert für den step in der Funktion range() .
#3 . Erstellen Sie ein dreidimensionales NumPy-Array.
Hinweis : Verwenden Sie nach Bedarf for-Schleife und verschachtelte for-Schleifen, um auf die Zeilen und einzelnen Einträge im Array zuzugreifen.
Einpacken
Hier ist eine Zusammenfassung dessen, was Sie in diesem Tutorial gelernt haben.
- Die Syntax zur Verwendung der Python- for -Schleife zusammen mit den Funktionen range() und enumerate()
- Verwenden von for-Schleifen, um Listen, Arrays und Strings zu durchlaufen und Befehlszeilenargumente einzulesen
- Verwenden von Schleifensteuerungsanweisungen: break zum Ausbrechen aus der Schleife und Continue -Anweisung zum Überspringen bestimmter Iterationen – basierend auf Bedingungen – innerhalb von for-Schleifen
- Verstehen der Möglichkeit unendlicher for-Schleifen in Python
Als Nächstes erfahren Sie, wie Sie die Methode split() in Python verwenden.
