Geekflare wird von unserem Publikum unterstützt. Es kann sein, dass wir durch den Kauf von Links auf dieser Seite Affiliate-Provisionen verdienen.
Unter Entwicklung Zuletzt aktualisiert: September 24, 2023
Weitergeben:
Invicti Web Application Security Scanner - die einzige Lösung, die eine automatische Überprüfung von Schwachstellen mit Proof-Based Scanning™ ermöglicht.

In diesem Tutorial lernen Sie anhand von Codebeispielen alles über die Verwendung von for-Schleifen in Python.

In der Programmierung helfen Ihnen Schleifen, eine bestimmte Reihe von Anweisungen zu wiederholen. Sie werden für-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 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:

  • Artikel ist die Schleifenvariable.
  • iterierbar bezeichnet eine beliebige Python-Iterable wie Listen, Tupel und Strings.
  • Anweisung_1 bis Anweisung_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-Schleifen-Konstruktionen

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 num in nums:
 print(num)

# Ausgabe
4
5
9
1
3

Um noch ein paar Beispiele hinzuzufü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 es 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, aber nicht einschließlich stop.

for i in range(len(nums)):
 print(nums<x><x><x><x>[i]</x></x></x></x>)

# Ausgabe
4
5
9
1
3

Sie können die Funktion range() auch 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 range(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 machen 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"{num} mal 3 ist {num*3}") # action on each num

# Output
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

Wie man mit der for-Schleife in Python eine Schleife durch Strings zieht

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 auch 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

Schleife durch Arrays mit for-Schleife

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(row)

# 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.

Dies ist die entsprechende Ausgabe.

Ausgabe
2
3
7
8

So lesen Sie Befehlszeilenargumente mit der for-Schleife

Befehlszeile

Als Entwickler sollten Sie damit vertraut sein, Python-Skripte über die Befehlszeile auszuführen und Befehlszeilenargumente zur Interaktion mit Ihrem Skript zu verwenden.

Sie können die in Python eingebauten Module wie sys und argparse verwenden, um Befehlszeilenargumente 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 auch eine Schleife durch sys.argv machen, so wie Sie eine Schleife durch eine beliebige Python-Liste machen sollten.

# main.py

import 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

import sys

for i in range(len(sys.argv)):
 print(f "arg{i} ist {sys.argv<x><x><x><x>[i]</x></x></x></x>}")

▶️ Als nächstes führen Sie main.py erneut aus.

$ python main.py Hallo Python3
arg0 ist main.py
arg1 ist Hallo
arg2 ist Python3

Angenommen, Sie möchten andere Argumente als den Modulnamen analysieren und verarbeiten. Sie können den Startwert auf 1 setzen, wie in der folgenden Codezelle.

# main.py

import 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

import sys

print("\nDrucke alle Kommandozeilenargumente...")
for arg in sys.argv:
 print(arg)

print("\nDrucke alle Kommandozeilenargumente 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: module_name...")
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

Ausgabe aller Kommandozeilenargumente...
main.py
Hallo
Python3

Ausgabe aller Kommandozeilenargumente mit Index...
arg0 ist main.py
arg1 ist Hallo
arg2 ist Python3

Ausgabe der Kommandozeilenargumente außer arg0: module_name...
arg1 ist Hallo
arg2 ist Python3

Verwendung der break-Anweisung in der for-Schleife

break-Anweisung innerhalb der for-Schleife

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
sum = 0
for i in range(k):
 num = int(input("\nEnter a number: "))
 if num<0:
 break # Schleife verlassen, wenn num < 0
 sum = num

print(sum)

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

So verwenden Sie die 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 Sie mit der nächste Iteration fort und lesen Sie die nächste Zahl ein.
k = 5
sum = 0
for i in range(k):
 num = int(input("\nGeben Sie eine Zahl ein: "))
 if num<0:
 continue
 sum = num

print(sum)

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 die angegebene Anzahl von Eingaben erreicht ist, und ignoriert negative Eingaben. Im Wesentlichen wird die Summe aller nicht-negativen Zahlen aus den k Eingaben zurückgegeben.

Können Sie in Python auf eine unendliche for-Schleife stoßen?

Unendliche for-Schleife

In allen 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 angeben, wird der Standardwert von 1 verwendet.
  • Wenn Sie einen Wert für x im Funktionsaufruf angeben, wird dieser Wert verwendet.
double()
# Liefert: 2

double(20)
# Liefert: 40

In Python gibt es 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, Wächterin.

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-für-endliche-schleife

Nun, Sie haben ein abrufbares Objekt und eine 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-für-schleife-unendlich

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 eine Zusammenfassung dessen, was Sie in diesem Lernprogramm 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.

  • Bala Priya C
    Autor
Dank an unsere Sponsoren
Weitere gute Lektüre zum Thema Entwicklung
Energie für Ihr Unternehmen
Einige der Tools und Dienste, die Ihr Unternehmen beim Wachstum unterstützen.
  • Invicti nutzt das Proof-Based Scanning™, um die identifizierten Schwachstellen automatisch zu überprüfen und innerhalb weniger Stunden verwertbare Ergebnisse zu erzielen.
    Versuchen Sie Invicti
  • Web Scraping, Residential Proxy, Proxy Manager, Web Unlocker, Search Engine Crawler und alles, was Sie zum Sammeln von Webdaten benötigen.
    Versuchen Sie Brightdata
  • Monday.com ist ein All-in-One-Betriebssystem, mit dem Sie Projekte, Aufgaben, Arbeit, Vertrieb, CRM, Arbeitsabläufe und vieles mehr verwalten können.
    Versuch Montag
  • Intruder ist ein Online-Schwachstellen-Scanner, der Schwachstellen in Ihrer Infrastruktur aufspürt, um kostspielige Datenschutzverletzungen zu vermeiden.
    Versuchen Sie Intruder