EMZETT.
Login

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

Kapitel 13 von 44 im Kurs Python. Mit Fortschritt, Quiz und Zertifikat auf der Lernseite.

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
blau

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

range(): Zahlenfolgen

range() erzeugt eine Folge von Zahlen. Das Ende ist wie beim Slicing nicht enthalten:

AufrufZahlen
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. Lea

Zwei 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? -> 4

Verschachtelte 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	9

break, 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: 12

Schleifenvariable 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 Element
  • range(start, ende, schritt): das Ende ist ausgeschlossen
  • enumerate() liefert Index und Element, zip() führt Listen parallel
  • Verschachtelte Schleifen durchlaufen alle Kombinationen
  • break, continue und else funktionieren wie bei while

Übungsaufgabe

Gib die ersten zehn Quadratzahlen (1, 4, 9, …) aus und berechne ihre Summe.

Quiz zur Selbstkontrolle

Weiter im Kurs

Zurück: Die while-Schleife

Weiter: Listen

Alle Kapitel: Python im Überblick