Die for-Schleife mit range() in Python 3

Schreibt man ein Programm, dann wird man häufig mit der Situation konfrontiert, dass etwas wiederholt werden muss. Möchte man beispielsweise viermal die Zeichenkette “Hello, World!” ausgeben, könnte man wie folgt vorgehen:

print("Hello, World!")
print("Hello, World!")
print("Hello, World!")
print("Hello, World!")

Damit kommt man sicherlich zum Ziel, denn bei Ausführung des Programms wird “Hello, World!” viermal angezeigt. Nichtsdestotrotz ist es umständlich.

Mit einer for-Schleife und der Built-In-Funktion range() läßt sich so etwas vereinfachen:

for i in range(4):
    print("Hello, World!")

Die print()-Funktion muss hier nur einmal geschrieben werden; den wiederholten Aufruf erledigt nun die for-Schleife. Bei einem viermaligen Aufruf mag das noch nicht so ins Gewicht fallen, aber bei Code, der 100 oder gar 1000 mal aufgerufen werden muss, sieht die Sache schon anders aus.

Dabei bezeichnet man die Zeile

for i in range(4):

als Schleifenkopf (loop header), während es sich bei dem dann folgenden – eingerückten Code – um den Schleifenkörper (loop body) handelt. Es ist zwingend erforderlich, dass der Schleifenkörper eingerückt wird.

Jede Wiederholung des Codes im Schleifenkörper wird als Iteration bezeichnet. Da die Anzahl der Schleifendurchläufe hier angegeben wird, spricht man auch von einer bestimmten Iteration (definite iteration).

Mit der Iterationsvariablen i, deren Bezeichnung übrigens frei gewählt werden kann, werden die durchzuführenden Durchläufe gezählt. Dabei wird mit 0 begonnen und bis zum angegebenen Integer-Wert (hier: 4) minus 1 hochgezählt.

for i in range(4):
    print(i)
    print("Hello, World!")

# Ausgabe:
0
Hello, World!
1
Hello, World!
2
Hello, World!
3
Hello, World!

Übrigens ist man durch die Angabe des Parameters 4 als Angabe der Anzahl der Iterationen unflexibel. Schöner ist es, eine Variable zu verwenden:

number = 4
for each_pass in range(number):
    print("Hello, World!")

Nutzt man range() mit zwei Parametern, dann wird dadurch ein Mindest- und ein Maximalwert festgelegt:

for i in range(4, 8):
    print(i)

# Ausgabe
4
5
6
7

Das funktioniert auch absteigend, wobei hier drei Parameter anzugeben sind:

for i in range(8, 4, -1):
    print(i)

# Ausgabe
8
7
6
5

Weiterführende Links