Kurz: Die for-Schleife läuft nacheinander über die Elemente einer Sammlung (Liste, Text, Dictionary, …). Das ist in Python die häufigste Schleife.
Teil des Kurses Python
Die for-Schleife läuft nacheinander über die Elemente einer Sammlung (Liste, Text, Dictionary, …). Das ist in Python die häufigste Schleife.
farben = ["rot", "grün", "blau"]
for farbe in farben:
print(farbe)Ausgabe:
rot
grün
blauDie Variable farbe nimmt in jedem Durchlauf den nächsten Wert an. Auch Texte kannst du Zeichen für Zeichen durchlaufen:
for buchstabe in "Hallo":
print(buchstabe, end=" ")
print()Ausgabe:
H a l l orange(): Zahlenfolgen
range() erzeugt eine Folge von Zahlen. Das Ende ist wie beim Slicing nicht enthalten:
| Aufruf | Zahlen |
|---|---|
range(5) | 0, 1, 2, 3, 4 |
range(2, 6) | 2, 3, 4, 5 |
range(0, 10, 3) | 0, 3, 6, 9 |
range(5, 0, -1) | 5, 4, 3, 2, 1 |
for i in range(1, 4):
print("Runde", i)
for i in range(10, 0, -3):
print(i)
print(list(range(5)))Ausgabe:
Runde 1
Runde 2
Runde 3
10
7
4
1
[0, 1, 2, 3, 4]Mit Index durchlaufen: enumerate()
Brauchst du Element und Position, nimm enumerate():
namen = ["Mia", "Tom", "Lea"]
for platz, name in enumerate(namen, start=1):
print(f"{platz}. {name}")Ausgabe:
1. Mia
2. Tom
3. LeaZwei Listen parallel: zip()
fragen = ["Hauptstadt von Deutschland?", "2 + 2?"]
antworten = ["Berlin", "4"]
for frage, antwort in zip(fragen, antworten):
print(frage, "->", antwort)Ausgabe:
Hauptstadt von Deutschland? -> Berlin
2 + 2? -> 4Verschachtelte Schleifen
Eine Schleife in einer Schleife durchläuft alle Kombinationen, zum Beispiel für das kleine Einmaleins:
for zeile in range(1, 4):
for spalte in range(1, 4):
print(zeile * spalte, end="\t")
print()Ausgabe:
1 2 3
2 4 6
3 6 9break, continue und else
Wie bei while beendet break die Schleife, continue springt zum nächsten Element, und else läuft, wenn kein break aufgetreten ist. Das ist praktisch für Suchen:
zahlen = [3, 8, 12, 5]
for z in zahlen:
if z > 10:
print("Gefunden:", z)
break
else:
print("Keine Zahl über 10")Ausgabe:
Gefunden: 12Schleifenvariable und Sammlung ändern
Verändere eine Liste nicht, während du sie durchläufst, das führt zu schwer zu findenden Fehlern. Erzeuge stattdessen eine neue Liste (siehe List Comprehensions):
zahlen = [1, 2, 3, 4, 5, 6]
gerade = []
for z in zahlen:
if z % 2 == 0:
gerade.append(z)
print(gerade)Ausgabe:
[2, 4, 6]Merke
for element in sammlung:durchläuft jedes Elementrange(start, ende, schritt): das Ende ist ausgeschlossenenumerate()liefert Index und Element,zip()führt Listen parallel- Verschachtelte Schleifen durchlaufen alle Kombinationen
break,continueundelsefunktionieren wie beiwhile
Übungsaufgabe
Gib die ersten zehn Quadratzahlen (1, 4, 9, …) aus und berechne ihre Summe.
Quiz zur Selbstkontrolle
Welche Zahlen liefert range(2, 5)?
- 2, 3, 4 (richtig)
- 2, 3, 4, 5
- 3, 4, 5
- 0, 1, 2, 3, 4
Wofür verwendest du enumerate()?
- Um Position und Element gleichzeitig zu erhalten (richtig)
- Um eine Liste zu sortieren
- Um Elemente zu zählen
- Um eine Liste umzukehren
Wann läuft der else-Block einer for-Schleife?
- Wenn die Schleife ohne break zu Ende ging (richtig)
- Wenn break ausgeführt wurde
- Wenn die Liste leer ist, nur dann
- Bei jedem Durchlauf
Weiter im Kurs
Zurück: Die while-Schleife
Weiter: Listen
Alle Kapitel: Python im Überblick