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

Syntax of Python for Loop

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

for Loop Constructs

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() und enumerate() 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 zu stop.

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
python-for-loop

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

Loop Through Arrays Using for Loop

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

Command-Line

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
python-for-loop-command-line-args

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

break Statement Inside for Loop

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?

Infinite for Loop

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 von x 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 des callable-objects gleich sentinel ist.

Verstehen Sie nun, warum wir in diesem Fall eine unendliche for-Schleife haben können?

python-for-infinite-loop

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-loop-infinite

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.