for
Die for
Schleife gibt es so ziemlich in jeder Programmiersprache.
Kurzgesagt funktioniert sie so: Für die Variable x
in einer Sequenz führe Code aus.
In Python-Code sieht es ungefähr so aus:
for x in sequence:
## ...code
Um die for
Schleife besser verstehen zu können,
müssen wir uns ein Beispiel anschauen:
for x in range(1, 10):
print(x)
1
2
3
4
5
6
7
8
9
range(1, 10)
erstellt uns eine Liste [1, 2, 3, 4, 5, 6, 7, 8, 9]
.
Japp, bis 9 und nicht bis 10!!
Warum?? Keine Ahnung, es ist einfach so ¯\_(ツ)_/¯
x
ist die Variable, die jeden Wert innerhalb dieser Liste animmt.
In diesem Beispiel ist x
beim ersten mal durchlaufen der Schleife 1
und dann beim zweiten Mal 2
und so weiter bis 9
.
x
nimmt dabei pro Durchlauf jeden einzelnen Wert der Sequenz von 1 bis 9 an.
Wir sind nicht gezwungen unsere Schleifen-Variable x
zu nennen.
Wir können unsere Schleifenvariable so benennen,
wie es gerade am besten zu unserem Code passt.
Für jeden Durchlauf wird der indentierte Code darunter ausgeführt,
deswegen sehen wir in der Konsole 1 bis 9 je in einer Zeile.
Der Code darunter kann so lang sein, wie wir wollen, solange er die gleichte Indentierung hat.
Lass uns zum Beispiel eine for
Schleife schreiben,
die von 1-12, für die Monate in einem Jahr, geht und
in die Konsole schreibt, ob es ein Sommer oder Winter Monat ist:
for month in range(1, 13):
if month >= 6:
print("Summer, month", month)
else:
print("Winter, month", month)
Winter, month 1
Winter, month 2
Winter, month 3
Winter, month 4
Winter, month 5
Summer, month 6
Summer, month 7
Summer, month 8
Summer, month 9
Summer, month 10
Summer, month 11
Summer, month 12
continue und break
Innerhalb einer Schleife können wir auch continue
und break
benutzen.
continue
tut jeden weiteren Code, der kommen würde, überspringen und
geht direkt in die nächste Schleifeniteration.
## Schleife von 1 bis 10
for x in range(1, 11):
## Wenn es durch 3 teilbar ist, dann überspringe
if i % 3 == 0:
continue
## Sonst printe die Zahl in der Konsole
print(i)
1
2
4
5
7
8
10
break
bricht eine Schleife sofort ab und es wird keine weiter Iteration und kein
weiterer Code der Schleife ausgeführt.
## Schleife von 1 bis 10
for i in range(1, 11):
## Wenn i gleich 5 ist, dann breche die Schleife ab
if i == 5:
break
## Sonst printe die Zahl in der Konsole
print(i)
}
1
2
3
4
for ... else
else als finally
for x in ...:
.....
else:
print("done")
...
done