Die Python for-Schleife wird genutzt, um dynamisch über eine Sequenz von Objekten zu iterieren und mit diesen beispielsweise Berechnungen durchführen zu können. Sie geht automatisch auf unterschiedliche Längen der Objekte ein und kann dadurch Arbeit bei der Programmierung sparen.
Wozu benötigt man eine for-Schleife?
In der Programmiersprache Python werden for-Schleifen vor allem für die Arbeit mit Python Lists genutzt, um die Objekte innerhalb der Liste zu verändern oder für eine anderweitige Berechnung nutzen zu können. Der Vorteil durch die Nutzung der Schleife ist, dass man nicht die Länge der Liste oder die einzelnen Indizes von Objekten kennen muss.
Die for-Schleife in Python unterscheidet sich dabei massiv von denen, die man aus anderen Programmiersprachen kennt. In diesen wird sie lediglich als Alternative zur while-Schleife genutzt, also um eine Berechnung so lange durchzuführen, wie eine Bedingung erfüllt ist. In Python hingegen ist sie speziell für die Arbeit mit Objekten und vor allem Listen gedacht.
Wie ist die Syntax der Python for-Schleife?
Der Aufbau einer for-Schleife ist immer relativ ähnlich und beginnt mit dem Wort “for”. Anschließend folgt der Variablenname, dessen Wert sich mit jedem Durchlauf verändert. In unserem Fall nennen wir diese “variable” und durchlaufen das Objekt “object”. Die Variable nimmt also in jedem Durchlauf den Wert des Elements an, das eben gerade an der Reihe ist. Das Wort “in” trennt den Variablennamen und den Namen des Objekts, das durchlaufen wird:
Die Zeile endet mit einem Doppelpunkt und die nächste Zeile startet dann mit einer Einrückung. Jede Zeile, die nach der for-Angabe eingerückt ist, wird in einem Durchlauf ausgeführt. Hier können Berechnungen ausgeführt werden oder wie in unserem Beispiel einfach nur die Elemente der Liste ausgegeben werden:
Was ist die range() Funktion?
Falls man den for-Loop nicht für die Iteration über ein konkretes Objekt nutzen will, sondern lediglich damit ein Befehl mehrfach ausgeführt wird, dann wird die range() Funktion genutzt. Sie wird anstelle des Objektnamens geschrieben und definiert einen Wertebereich, der durchlaufen wird. Für diese Funktion gibt es insgesamt drei Angaben: range(start, stop, step). Man kann also angeben, bei welcher Zahl die Funktion starten soll, dies ist per Default 0. Außerdem kann man angeben, bei welchem Wert die Funktion stoppen soll und wie groß die Schrittweite ist, hier ist der Default 1.
Wenn man der range() Funktion lediglich einen Wert übergibt, dann ist dies automatisch der Stop-Wert mit Start-Wert 0 und der Schrittlänge 1.
Mit der Übergabe von zwei Werten, setzt man den Start-Wert und den Stop-Wert:
Wie lassen sich komplexere for-Schleifen bilden?
Wie bereits beschrieben, werden in jedem Durchlauf alle Codezeilen ausgeführt, die nach der for-Schleife eingerückt sind. Damit kann man auch komplexere Zusammenhänge abbilden und beispielsweise eine if-else-Schleife einbauen:
Wie kann man die for-Schleife in einer Zeile schreiben?
Bisher haben wir gelernt, dass die Python For-Schleife immer nach dem Doppelpunkt einen Zeilenumbruch hat und in der nächsten Zeile mit einer Einrückung weitergeht. Um den Code kompakter zu gestalten oder Zeit zu sparen, gibt es auch die Möglichkeit eine Python For-Schleife in einer einzigen Zeile zu schreiben, je nachdem wie komplex sie ist. Das obere Beispiel, welches die Zahlen zwischen 2 und 5 ausgibt, lässt sich sehr einfach in einer einzigen Zeile schreiben:
Bei komplexeren for-Schleifen kann die Darstellung in einer Zeile auch schnell unübersichtlich werden, wie unser Beispiel mit den geraden und ungeraden Zahlen zeigt:
Besonders elegant ist die Erstellung einer Liste oder eines Dictionaries mithilfe einer for-Loop, die dann meist auch in einer Zeile definiert ist:
Wenn man dies mit einer “regulären” Python for-Schleife lösen würde, müsste man zuerst eine leere Liste erstellen und diese dann nach und nach füllen. Das ist deutlich umständlicher:
Was machen break und continue in einer for-Schleife?
Nicht immer soll eine Python for-Schleife bis ans Ende der Schleife laufen. In manchen Fällen kann es auch Sinn machen, den Ablauf frühzeitig zu beenden. Dazu kann man den Befehl “break” nutzen. Im folgenden Beispiel wird die Schleife unterbrochen, sobald die aktuelle Zahl größer als 4 ist.
Der Befehl “continue” ist das genaue Gegenteil zu “break” und führt dazu, dass die Schleife weiterhin durchlaufen wird. Er macht vor allem dann Sinn, wenn man für eine Bedingung keinen direkten Befehl zur Ausführung hat, sondern lediglich eine Runde in der Schleife starten will.
In dem folgenden Beispiel wollen wir lediglich die Zahlen ausgeben, die größer als vier sind. Dazu überspringen wir alle Werte, die kleiner oder gleich vier sind mithilfe von “continue”. Dadurch werden nur die Zahlen von fünf aufwärts ausgegeben:
Wie funktioniert enumerate in einer Schleife?
Mithilfe von “enumerate” kann man nicht nur durch die Elemente eines Objektes, wie beispielsweise einer Liste, iterieren, sondern auch gleichzeitig noch den Index des jeweiligen Elements erhalten. Das kann beispielsweise Sinn machen, wenn man die Elemente einer Liste auch direkt ändern will.
Angenommen wir wollen jede ungerade Zahl in der Liste “numbers” mit zwei multiplizieren. Dazu durchlaufen wir das Objekt “numbers” mit “enumerate” und verändern die Zahl in der Liste, wenn das Element ungerade ist. Wichtig ist hierbei zu beachten, dass wir nun zwei Namen vergeben müssen, da jeder Iterationsschritt zwei Variablen, nämlich den Index und das Element selbst, hat.
Hierbei ist wichtig zu verstehen, dass Änderungen an dem Objekt, über das man gerade iteriert, keine Auswirkungen auf die Python for-Schleife haben. Sie sieht das Objekt immer noch so an, wie beim allerersten Durchlauf. Der folgende Befehl müsste sonst zu einer unendlichen Schleife führen, da das Element “numbers” in jedem Durchlauf doppelt so lang wird wie davor. Trotzdem hat die Python for-Schleife nur neun Schritte, da zum Start der Schleife das Objekt “numbers” nur neun Elemente hatte.
Das solltest Du mitnehmen
- Die Python for-Schleife wird genutzt, um dynamisch durch Elemente eines Objektes iterieren zu können.
- Mithilfe von “break” kann man eine Schleife vorzeitig beenden. Der Befehl “continue” hingegen führt dazu, dass die Schleife weiter durchlaufen wird.
- Der Befehl “enumerate” liefert nicht durch in jeder Runde ein Element, sondern auch den Index des Elements in dem Objekt. Dadurch lässt sich beispielsweise auch das Objekt aus der Schleife heraus ändern.
Was ist XOR?
Entdecken Sie XOR: Die Rolle des Exklusiv-Oder-Operators in Logik, Verschlüsselung, Mathematik, KI und Technologie.
Wie kannst Du die Ausnahmebehandlung in Python umsetzen?
Die Kunst der Ausnahmebehandlung in Python: Best Practices, Tipps und die wichtigsten Unterschiede zwischen Python 2 und Python 3.
Was sind Python Module?
Erforschen Sie Python Module: Verstehen Sie ihre Rolle, verbessern Sie die Funktionalität und rationalisieren Sie die Programmierung.
Was sind Python Vergleichsoperatoren?
Beherrschen Sie die Python Vergleichsoperatoren für präzise Logik und Entscheidungsfindung beim Programmieren in Python.
Was sind Python Inputs und Outputs?
Python Inputs und Outputs beherrschen: Erforschen Sie Eingaben, Ausgaben und den Umgang mit Dateien in der Python-Programmierung.
Wie kannst Du mit Python Excel / CSV Dateien bearbeiten?
In diesem Artikel werden Möglichkeiten aufgezeigt, um mit Python Excel- und CSV-Dateien öffnen, bearbeiten und schreiben zu können.
Andere Beiträge zum Thema Python for-Schleife
- w3schools bietet auch einen interessanten Beitrag zu Python for-Schleifen.