range() – Listen erstellen und mit Werten füllen
Wir haben bisher unsere Listen immer von Hand gefüllt. Nun lernen wir die Python-Funktion range
kenne.
Über die Funktion range
können wir eine Liste erstellen, die von einem vorgegebenen Wert bis zu einem vorgegebenen Wert geht.
werte = list(range(3))
print(werte)
Als Ergebnis erhalten wir
[0, 1, 2]
Anmerkung: bei der alten Python-Version reichte der folgende Code noch aus: werte = range(3)
– aber bitte nur mit aktueller Python-Version arbeiten (und vor allem Python lernen)!
Der Wert startet bei 0 und zählt dann 3 Zahlen hoch. Wir kommen also bei einer Zahl eins kleiner als unser vorgegebener Endwert raus.
Die range
-Funktion können wir nun in den aus dem vorherigen Kapitel eingesetzten for
-Schleifen nutzen:
for durchgang in range(3):
print(durchgang)
Als Ergebnis erhalten wir
0
1
2
Somit wird die for
-Schleife deutlich „ähnlicher“ wie auch anderen Programmiersprachen diese einsetzen. Aber die Umsetzung in Python ist deutlich clever, da diese sehr flexibel ist.
Aber zurück zu unserer range
-Funktion.
von-bis bei range
-Funktion
Wenn wir bei der range
-Funktion nur einen Wert angeben, ist das der Endwert und es wird bei 0 angefangen. Wir können aber auch den Startwert festlegen. Somit brauchen wir 2 Werte bei der range
-Funktion, die durch ein Komma getrennt werden.
werte = list(range(2,8))
print(werte)
Wir erhalten nun eine Liste mit den Werten:
werte[2,3,4,5,6,7]
Hier sieht man bei der Aussage von vorher, dass „3-Zahlen ab 0“ so nicht ganz richtig ist. Bei der range
-Funktion wird eins kleiner als die „Endzahl“ genutzt. Im Beispiel haben wir 8 angegeben und erhalten in der erstellten Liste dann als letzte und größte Zahl 7.
Schrittweite (Schrittgröße) bei range
festlegen
Neben dem Anfangswert und „Endwert-1“ können wir auch die Schrittweite angeben. Somit kommen wir aus dem Standard mit der Schrittweite von 1 heraus und können für unseren Anwendungsfall eine passende Schrittweite festlegen. Diese Angabe wird als dritter Wert mitgegeben. Erweitern wir unser Beispiel, dass in 2-er Schritten vorgegangen werden soll.
werte = list(range(2,8,2))
print(werte)
Wir erhalten er Ergebnis:
werte[2, 4, 6]
Die 8 bei range(2,8,2)
ist raus, da ja nur „Endwert-1“ bei range
genutzt wird.
Es können auch negative Schrittweiten angegeben werden. Dazu muss der Startwert größer als der Endwert sein:
werte = list(range(12,8,-1))
print(werte)
Wir erhalten er Ergebnis:
werte[12, 11, 10, 9]
Das Ganze geht natürlich auch ins Minus, wenn das bei den End- bzw. Anfangswerte angegeben wurde:
werte = list(range(3,-3,-1))
print(werte)
Wir erhalten er Ergebnis:
werte[3, 2, 1, 0, -1, -2]