For-Schleifen in Python: Alles, was Sie wissen müssen

Veröffentlicht: 2022-08-18

In 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

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_n

In 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

für Schleifenkonstrukte

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() und enumerate() 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 + step und so weiter bis einschließlich stop .

 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 18

Verwendung 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
Python-für-Schleife

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 9

So 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 e

So durchlaufen Sie Arrays mit for Loop in Python

Durchschleifen von Arrays mit for Loop

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 8

So lesen Sie Befehlszeilenargumente mit der for-Schleife

Befehlszeile

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 Python3

Angenommen, 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
python-for-loop-commandline-args

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 Python3

Verwendung der Break-Anweisung innerhalb einer Schleife

break-Anweisung innerhalb der for-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 10

Verwendung 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 13

Die 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?

Unendlich für Schleife

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 von x anzugeben, wird der Standardwert 1 verwendet.
  • Wenn Sie im Funktionsaufruf einen Wert für x angeben, 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 des callable-object gleich sentinel ist.

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

Python-für-unendliche-Schleife

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

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.

Probieren Sie die Beispiele aus

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.