Die for-Anweisung in Python
Schreibweise einer Schleife mit while:
main.py
i = iter( 'abc' )
while True:
try:
ch = next( i )
print( ch )
except StopIteration:
break
Protokoll
a
b
c
Schreibweise derselben Schleife mit for:
main.py
for ch in 'abc':
print( ch )
Protokoll
a
b
c
Die for-Schleife ist eine Abkürzung für die zuvor gezeigte while-Schleife (einschließlich der Zeile »i = iter( 'abc' )«).
Syntax
- Syntax
for i in o: print( i )
An Stelle von »i« kann auch ein anderer Variablenname stehen. Die Variable mit dem angegebenen Namen nennen wir Schleifenvariable.
An Stelle von »o« kann ein anderer Ausdruck stehen.
An Stelle von »print( i )« kann auch eine andere Suite stehen (wie bei »def«: einzeilig oder mehrzeilig).
Zum Abschluß muß eine Leerzeile eingegeben werden.
Anforderungen
Hinter »in« muß ein Ausdruck stehen, dessen Wert ein iterables Objekt ist.
Semantik
Die Suite wird für jeden Wert des Iterators einmal ausgeführt.
Eine solchen einmalige Ausführung der Suite nennen wir einen Schleifendurchlauf.
Dabei wird der jeweilige Wert der Variablen hinter »for« zugewiesen.
Beispiele
- Protokoll
for i in '012': print( i )
0
1
2- Protokoll
r = '012'
for i in r: print( i )
0
1
2
Die for-Schleife erzeugt aus einem iterablen Objekt (r) einen Iterator und iteriert diesen. Danach ist der Iterator verbraucht. Aber eine neue Vorschleife erzeugt aus demselben iterablen Objekt wieder einen neuen Iterator.
Ausgabe der Einträge aus »dir()« (ein Eintrag pro Zeile).
- main.py
for s in dir():
print( s )- Protokoll
__annotations__
__builtins__
__doc__
__loader__
__name__
__package__
__spec__
Gültigkeitsbereich des Namens
Der Name hinter »for« ist nach dem Ende der Schleife weiterhin verwendbar.
- Protokoll
for i in '012': print( i )
0
1
2print( i )
2
Übungsaufgaben
/ Übungsaufgabe 0
Schreiben Sie ein Programm, das alle Einträge aus »dir()« ausgibt (ein Eintrag pro Zeile), die ein »a« enthalten.