4.2 for-Schleifen mit range#
In diesem Kapitel werden wir uns erneut mit Schleifen beschäftigen. Schleifen ermöglichen es uns, bestimmte Aufgaben wiederholt auszuführen, ohne den Code mehrmals schreiben zu müssen. Im Kapitel 4.1 haben wir ja bereits die for-Schleife mit Listen kennengelernt. In diesem Kapitel konzentrieren wir uns auf die for-Schleife mit der range()-Funktion in Python.
Lernziele#
Lernziele
Sie können Zahlenlisten mit der range()-Funktion erzeugen und diese mit der for-Schleife kombinieren.
Die range()-Funktion#
In vielen Fällen möchten wir eine Schleife für eine bestimmte Anzahl von
Iterationen ausführen. In Python können wir dies mit Hilfe der
range()
-Funktion erreichen. Die range()-Funktion generiert eine Liste von
Zahlen, die wir dann anschließend in einer for-Schleife verwenden können.
Natürlich kann die Liste von Zahlen auch für andere Dinge genutzt werden, aber
die Verwendung für for-Schleifen ist sicherlich der häufigste Einsatzzweck von
range().
Die Syntax der range()-Funktion ist:
range(stop) # erzeugt eine Liste von 0 bis (stop - 1)
range(start, stop) # erzeugt eine Liste von start bis (stop - 1)
range(start, stop, step) # erzeugt eine Liste von start bis (stop - 1) mit der Schrittweite step
Es ist schwierig, sich den Inhalt von range()
direkt anzuschauen. Am
einfachsten ist es, die range()-Funktion direkt mit der for-Schleife zu
kombinieren wie im nächsten Abschnitt.
range() mit for#
Um eine for-Schleife mit der range()-Funktion zu verwenden, kombinieren wir einfach die beiden Konzepte:
for i in range(start, stop, step):
Anweisungen
Hier ist i
die Schleifenvarible, die nacheinander bei jedem Schleifendurchgang
die Werte in der von range() erzeugten Liste annimmt. Im Folgenden finden Sie
einige Beispiele für die Verwendung von for-Schleifen mit range():
for i in range(5):
print(i)
0
1
2
3
4
range(5)
erzeugt eine Liste mit den Zahlen 0, 1, 2, 3, 4, die dann durch die
print()
-Funktion nacheinander ausgegeben werden.
for i in range(2, 6):
print(i)
2
3
4
5
range(2,6)
erzeugt eine Liste mit den Zahlen 2, 3, 4, 5. Achtung, die 6 gehört
nicht dazu, da das letzte Element der Liste ja die stop-Zahl - 1 ist.
for i in range(1, 10, 2):
print(i)
1
3
5
7
9
range(1, 10, 2)
erzeugt die Liste 1, 3, 5, 7, 9.
Um die Bedeutung der Schrittweite step
zu zeigen, können wir einmal eine
negative Schrittweite ausprobieren.
for i in range(10, 0, -1):
print(i)
10
9
8
7
6
5
4
3
2
1
Die negative Schrittweite step = -1
führt dazu, dass der Python-Interpreter
rückwärts zählt.
Mini-Übung
Lassen Sie die Dreier-Zahlen von 3 bis 99 ausgeben, also 3, 6, 9, 12, 15, …, 96, 99.
Lösung
for i in range(3, 100, 3):
print(i)
Anwendungsbeispiele für die for-Schleife#
Insbesondere, wenn die Anzahl der Wiederholungen feststeht, kommt die for-Schleife in Kombination mit range() zum Einsatz. Im Folgenden sehen wir uns typische Beispiele an.
Beispiel 1: Berechnung der Summe der ersten 10 natürlichen Zahlen
summe = 0
for i in range(1, 11):
summe += i
print("Die Summe der ersten 10 natürlichen Zahlen ist: ", summe)
Die Summe der ersten 10 natürlichen Zahlen ist: 55
Beispiel 2: Nur jedes zweite Mal wird eine Aktion ausgeführt
for i in range(2, 11, 2):
print(i)
2
4
6
8
10
Mini-Übung
Schreiben Sie ein Programm, dass die Summe der ersten n Quadratzahlen berechnet.
Lösung
n = 5 # Beispielwert
summe = 0
for i in range(1, n + 1):
summe += i ** 2
print("Die Summe der ersten Quadratzahlen ist:", summe)
Hier ist die Variable n
im Python-Code gesetzt worden. Schöner wäre eine interaktive Abfrage mit der input()-Funktion:
n = int(input('Wie viele Quadratzahlen sollen summiert werden?))
Aber das war nicht gefragt.