In diesem Tutorial erfahren Sie alles über die Verwendung von for-Schleifen in Python mit Codebeispielen.
In der Programmierung helfen Ihnen Schleifen, eine bestimmte Reihe 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 die Anzahl der Wiederholungen im Voraus kennen
In diesem Lernprogramm lernen Sie alles über die Arbeit mit for-Schleifen in Python. Sie lernen zunächst die Syntax und einfache Iterationen mit einer for-Schleife kennen. Dann lernen Sie die Verarbeitung von Befehlszeilenargumenten, die Verwendung von Schleifensteuerungsanweisungen und vieles mehr.
Lassen Sie uns beginnen..
Syntax der Python for-Schleife
Die allgemeine Syntax für die Verwendung der for-Schleife in Python lautet wie folgt:
for item in iterable:
# etwas mit item tun
anweisung_1
anweisung_2
.
.
.
anweisung_n
In der obigen Syntax:
- item ist die Schleifenvariable.
- iterable bezeichnet eine beliebige Python-Iterable wie Listen, Tupel und Strings.
- statement_1 bis statement_n bezeichnen die Anweisungen im Schleifenkörper.
Hinweis: Fügen Sie unbedingt einen Doppelpunkt (:
) nach dem Namen der Iterable ein und rücken Sie alle Anweisungen im Schleifenkörper um vier Leerzeichen ein.
Allgemeine for-Schleifen-Konstruktionen in Python
Wenn Sie eine for-Schleife verwenden:
- Sie können direkt auf die Elemente zugreifen, indem Sie die im vorherigen Abschnitt besprochene Syntax verwenden.
- Sie können die for-Schleife in Verbindung mit integrierten Python-Funktionen wie
range()
undenumerate()
verwenden.
Wir werden sie in diesem Abschnitt behandeln.
Verwendung der for-Schleife für den Zugriff auf Elemente
Um die Lesbarkeit zu verbessern, sollten Sie eine Schleifenvariable wählen, die angibt, was die Liste enthält. Im folgenden Beispiel ist nums
eine Liste von Zahlen, für die wir num
als Schleifenvariable verwenden. Beachten Sie, dass for num in nums:
intuitiv und einfach zu lesen ist.
nums = [4,5,9,1,3]
for ziffern in ziffern:
print(num)
# Ausgabe
4
5
9
1
3
Wenn Sie noch ein paar weitere Beispiele hinzufügen, können Sie for fruit in fruits:
und for student in students:
verwenden, wenn Sie eine Schleife durch die Liste fruits
bzw. students
ziehen.
Verwendung der for-Schleife mit der Funktion range()
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 in einer Schleife durchlaufen können, um die Indizes zu erhalten:start
,start step
und so weiter, bis zustop
.
for i in range(len(nums)):
print(ziffern<x><x><x><x>[i]</x></x></x></x>)
# Ausgabe
4
5
9
1
3
Sie können auch die Funktion range()
verwenden, um eine Folge von Zahlen zu erzeugen, die Sie in einer Schleife durchlaufen. Im folgenden Beispiel setzen wir den optionalen Parameter step
auf 2. So erhalten wir Zahlen von 10 bis einschließlich 20, in 2er-Schritten.
for i in bereich(10,20,2):
print(i)
# Ausgabe
10
12
14
16
18
Verwendung der for-Schleife mit der Funktion enumerate()
Wenn Sie eine Schleife durch eine Iterable ziehen 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}")
# Ausgabe
0:4
1:5
2:9
3:1
4:3
Wie man mit der for-Schleife in Python Elemente aus Listen liest
Um mit der for-Schleife durch Python-Listen zu laufen, können Sie die generische Syntax aus dem vorherigen Abschnitt verwenden.
Im folgenden Beispiel istnums
iterabel und num ist die Schleifenvariable.
nums = [4,5,9,1,3]
for num in nums:
print(f"{Zahl} mal 3 ist {Zahl*3}") # Aktion für jede Zahl
# Ausgabe
4 mal 3 ist 12
5 mal 3 ist 15
9 mal 3 ist 27
1 mal 3 ist 3
3 mal 3 ist 9
Schleifen durch Strings mit for Loop in Python
Python-Strings sind Iterables und Sie können Schleifen, Indizierungen, Slicing und mehr durchführen.
Hinweis: Python verfügt nicht über einen eingebauten Zeichendatentyp. Sie können also ein Zeichen als einen String der Länge eins behandeln.
my_string = "Code"
for char in my_string:
print(char)
# Ausgabe
C
o
d
e
Schleifen durch Arrays mit der for-Schleife in Python
Sie können mit Hilfe von Schleifen und verschachtelten for-Schleifen durch Arrays laufen.
Im folgenden Codeschnipsel ist array1 eine verschachtelte Liste, die kleinere Listen als Elemente enthält. Wenn Sie also eine Schleife durch array1 ziehen, erhalten Sie jede Zeile, wie unten gezeigt.
array1 = [[2,3],[7,8]]
for row in array1:
print(Zeile)
# Ausgabe
[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 beim Indexieren der Zeilen.
- Die innere for-Schleife ermöglicht es Ihnen, auf die Elemente in jeder Zeile zuzugreifen.
Hier ist die entsprechende Ausgabe.
Ausgabe
2
3
7
8
Lesen von Kommandozeilenargumenten mit der for-Schleife
Als Entwickler sollten Sie damit vertraut sein, Python-Skripte von der Kommandozeile aus auszuführen und Kommandozeilenargumente zu verwenden, um mit Ihrem Skript zu interagieren.
Sie können die in Python integrierten Module wie sys und argparse verwenden, um Kommandozeilenargumente zu analysieren und zu lesen.
In diesem Abschnitt erfahren Sie, wie Sie das sys-Modul
verwenden und mit einer for-Schleife
die Liste der Befehlszeilenargumente durchlaufen.
Im sys-Modul ist sys.argv
die Liste der Befehlszeilenargumente, die Sie übergeben. Sie können also in einer Schleife durch sys.argv
gehen, so wie Sie durch jede andere Python-Liste gehen würden.
# main.py
importieren sys
for arg in sys.argv:
print(arg)
Sie können das Programm nun von der Kommandozeile aus starten, wie unten gezeigt.
$ python main.py Hallo Python3
main.py
Hallo
Python3
Standardmäßig ist der Name des Moduls das erste Argument und befindet sich im 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
importieren sys
for i in range(len(sys.argv)):
print(f "arg{i} ist {sys.argv<x><x><x><x>[i]</x></x></x></x>}")
▶️ Führen Sie nun main.py erneut aus.
$ python main.py Hallo Python3
arg0 ist main.py
arg1 ist Hallo
arg2 ist Python3
Angenommen, Sie möchten die Argumente mit Ausnahme des Modulnamens parsen und verarbeiten. Sie können den Startwert auf 1 setzen, wie in der Codezelle unten.
# main.py
importieren sys
for i in range(1,len(sys.argv)):
print(f "arg{i} ist {sys.argv<x><x><x><x>[i]</x></x></x></x>}")
$ python main.py Hallo Python3
arg1 ist Hallo
arg2 ist Python3
Zusammengefasst enthält die Datei main.py den folgenden Code.
# main.py
importieren sys
print("\nDrucke alle Befehlszeilenargumente...")
for arg in sys.argv:
print(arg)
print("\nDrucke alle Befehlszeilenargumente mit Index...")
for i in range(len(sys.argv)):
print(f "arg{i} ist {sys.argv<x><x><x><x>[i]</x></x></x></x>}")
print("\nDrucke Befehlszeilenargumente außer arg0: Modulname...")
for i in range(1,len(sys.argv)):
print(f "arg{i} ist {sys.argv<x><x><x><x>[i]</x></x></x></x>}")
Hier ist die Ausgabe, wenn Sie das Modul ausführen.
$ python main.py Hallo Python3
Alle Kommandozeilenargumente ausgeben...
main.py
Hallo
Python3
Alle Kommandozeilenargumente mit Index ausgeben...
arg0 ist main.py
arg1 ist Hallo
arg2 ist Python3
Befehlszeilenargumente ausgeben außer arg0: module_name...
arg1 ist Hallo
arg2 ist Python3
Wie Sie die break-Anweisung innerhalb einer Schleife verwenden
Wie andere Programmiersprachen unterstützt auch Python die Verwendung der Schleifensteuerungsanweisungen break
und continue
. Mit diesen Anweisungen können Sie den Kontrollfluss in Schleifen abhängig von bestimmten Bedingungen ändern. Sehen wir uns an, wie Sie sie innerhalb einer for-Schleife verwenden können.
Die Anweisung break
the kann verwendet werden, um eine Schleife zu verlassen, wenn eine bestimmte Bedingung wahr
ist.
Wir möchten ein Programm schreiben, das Folgendes tut:
- Legen Sie
k
, die Anzahl der Eingaben, fest. - Verwenden Sie eine
for-Schleife
, um die Benutzereingaben einzulesen – eine Ziffer nach der anderen – und summieren Sie die nicht-negativen Zahlen (größer oder gleich Null). - Dieser Prozess sollte so lange fortgesetzt werden, wie der Benutzer nicht-negative Zahlen eingibt.
- Wenn der Benutzer eine negative Zahl eingibt, verlassen Sie die Schleife und geben die Summe aus.
Hier ist der Code, der die obige Aufgabe ausführt.
k= 5
summe = 0
for i in Bereich(k):
num = int(input("\nGeben Sie eine Zahl ein: "))
if num<0:
break # Schleife verlassen, wenn num < 0
summe = num
print(Summe)
Wenn der Benutzer eine Zahl kleiner als Null eingibt, bricht die Steuerung aus der for-Schleife zur ersten Anweisung nach der Schleife ab.
Geben Sie eine Zahl ein: 2
Geben Sie eine Zahl ein: 3
Geben Sie eine Zahl ein: 5
Geben Sie eine Zahl ein: -1
10
Verwendung der continue-Anweisung innerhalb der for-Schleife
Die continue-Anweisung
kann verwendet werden, um bestimmte Iterationen in Abhängigkeit von einer bestimmten Bedingung zu überspringen.
Lassen Sie uns die gleichen Beispiele wie im vorherigen Abschnitt verwenden.
- Lesen Sie die Benutzereingabe ein und berechnen Sie die Summe der nicht-negativen Zahlen.
- Wenn der Benutzer eine negative Zahl eingibt, überspringen Sie diese Iteration, fahren mit der nächsten Iteration fort und lesen die nächste Zahl ein.
k = 5
summe = 0
for i in Bereich(k):
num = int(input("Geben Sie eine Zahl ein: "))
if num<0:
weiter
summe = num
print(Summe)
Hier ist ein Beispiel für die Ausgabe.
Geben Sie eine Zahl ein: 2
Geben Sie eine Zahl ein: 3
Geben Sie eine Zahl ein: 5
Geben Sie eine Zahl ein: -1
Geben Sie eine Zahl ein: 3
13
Die vierte Zahl ist -1, also eine negative Zahl. Diesmal geht die for-Schleife jedoch weiter, bis wir die angegebene Anzahl von Eingaben erreicht haben, und ignoriert negative Eingaben. Im Wesentlichen gibt sie die Summe aller nicht negativen Zahlen der k Eingaben zurück.
Können Sie in Python auf eine unendliche for-Schleife stoßen?
In all den Beispielen und Anwendungsfällen, die wir bisher besprochen haben, sind wir nie auf das Problem einer unendlichen for-Schleife gestoßen. Aber kann man 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 vonx
anzugeben, wird der Standardwert von 1 verwendet. - Wenn Sie einen Wert für
x
im Funktionsaufruf angeben, wird dieser Wert verwendet.
double()
# Gibt zurück: 2
double(20)
# Gibt zurück: 40
In Python gibt die Funktion iter() ein Iterator-Objekt zurück. Sie können next(iter-obj)
verwenden, um durch die Sequenz zu iterieren und auf die nachfolgenden Elemente zuzugreifen.
– Nehmen wir ein aufrufbares Objekt und einen Wert, Sentinel.
–
iter(callable-object, sentinel)
kann verwendet werden, um eine Iteration durchzuführen, bis der Rückgabewert descallable-objects
gleichsentinel
ist.
Verstehen Sie nun, warum wir in diesem Fall eine unendliche for-Schleife haben können?
Nun, Sie haben ein abrufbares Objekt
und einen Sentinel-Wert
. Wenn der Rückgabewert des aufrufbaren Objekts niemals gleich dem Sentinel-Wert ist, dann geht die Schleife ewig weiter!
Lassen Sie uns die obige Funktion double
als Callable 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 ist und nie gleich 0 ist, haben wir eine Endlosschleife!
▶️ Versuchen Sie, die folgende Codezelle auszuführen. Es handelt sich um eine unendliche for-Schleife, und Sie müssen das Programm zwangsweise anhalten.
for _ in iter(double,0):
print("Läuft...")
Python For-Schleifen: Übungsfragen
#1. Verwenden Sie die for-Schleife, um alle geraden Zahlen im Bereich von 0 bis 20 auszudrucken.
Tipp: Verwenden Sie die Funktion range()
mit dem richtigen Schrittwert
.
#2. Geben Sie alle geraden Zahlen von 20 bis 0 aus.
Tipp: Verwenden Sie einen negativen Wert für den Parameter step
in der Funktion range()
.
#3. Erstellen Sie ein dreidimensionales NumPy-Array.
Tipp: Verwenden Sie for-Schleifen und verschachtelte for-Schleifen nach Bedarf, um auf die Zeilen und einzelnen Einträge im Array zuzugreifen.
Zusammenfassung
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()
- Die Verwendung von for-Schleifen zum Durchlaufen von Listen, Arrays und Strings sowie zum Einlesen von Befehlszeilenargumenten
- Verwendung von Schleifensteuerungsanweisungen: break, um die Schleife zu verlassen, und continue, um bestimmte Iterationen – abhängig von Bedingungen – innerhalb von for-Schleifen zu überspringen
- Verstehen der Möglichkeit von unendlichen for-Schleifen in Python
Als nächstes lernen Sie, wie Sie die Methode split() in Python verwenden.