Direkt zum Inhalt

Python range() Function Tutorial

Lerne die Python-Funktion range() und ihre Möglichkeiten mit Hilfe von Beispielen kennen.
Aktualisierte 16. Jan. 2025  · 7 Min. Lesezeit

Die Funktion range() ist eine sehr beliebte und weit verbreitete Funktion in Python, vor allem wenn du mit for Schleifen arbeitest, und manchmal auch mit while Schleifen. Es lohnt sich, die Funktion range() zu kennen und zu beherrschen, denn sie öffnet dir viele Türen: range() wird für alles verwendet, von der Steuerung des Programmflusses bis zum Durchlaufen von Datensätzen, die du zur Datenanalyse verwendest. 

Wenn du gerade erst mit Python anfängst und mehr darüber erfahren möchtest, besuche den DataCamp-Kurs Einführung in die Datenwissenschaft in Python.

Was ist die Funktion range() in Python?

Die Funktion range() gibt eine Folge von Zahlen zurück und ist unveränderlich, d.h. ihr Wert ist fest. Die Funktion range() benötigt ein oder maximal drei Argumente, nämlich den start und einen stop Wert sowie eine step Größe.

range() wurde in Python3 eingeführt. In Python2 wurde eine ähnliche Funktion, xrange(), verwendet, die sich etwas anders verhielt. Unter anderem gab xrange() ein Generator-Objekt zurück und verbrauchte weniger Speicher, während range() eine Liste oder eine Zahlenfolge zurückgibt.

Die Funktion range() ist unter anderem deshalb so nützlich, weil sie nur die Werte start, stop und step speichert und daher weniger Speicherplatz benötigt als eine Liste oder ein Tupel.

Python range() Function Syntax

Die Funktion range() kann auf drei verschiedene Arten dargestellt werden, oder du kannst sie dir als drei range() Parameter vorstellen:

  • range(stop_value): Standardmäßig ist der Startpunkt hier Null.
  • range(start_value, stop_value): Dadurch wird die Sequenz basierend auf dem Start- und Stoppwert erstellt.
  • range(start_value, stop_value, step_size): Sie erzeugt die Sequenz, indem sie den Startwert mit der Schrittweite erhöht, bis sie den Stoppwert erreicht.
Beispiel für eine Python-Bereichsfunktion
Python range()-Funktion. Bild vom Autor. 

Wir können auch den Typ der Funktion range() überprüfen, indem wir range() in type() einbinden.

type(range(100))
range

Python range() Funktionsbeispiele

Schauen wir uns jetzt ein paar Beispiele an, damit du den Umgang mit range() üben und beherrschen kannst.

Python range() verwenden, um eine Zahlenreihe zu drucken

Beginnen wir mit einem einfachen Beispiel, in dem wir eine Folge von zehn Zahlen ausdrucken, die deinen ersten range() Parameter abdeckt. Um dies zu erreichen, gibst du einfach den Wert stop ein. Da Python mit einer nullbasierten Indizierung arbeitet, beginnt die Sequenz bei null und endet bei der angegebenen Zahl, d.h. $n-1$, wobei $n$ die in der Funktion range() angegebene Zahl ist.

range(10) #it should return a lower and an upper bound value.
range(0, 10)
for seq in range(10):
    print(seq)
0
1
2
3
4
5
6
7
8
9

Wie erwartet, liefert die obige Zelle eine Zahlenfolge, die mit $0$ beginnt und mit $9$ endet.

Verwendung von Python range() mit list()

Du könntest die Bereichsfunktion auch als Argument für eine Liste verwenden. In diesem Fall würde sie eine Liste von Zahlen ergeben, deren Länge dem Stoppwert entspricht, wie unten gezeigt:

list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
len(list(range(10)))
10

Die Verwendung von Start, Stop und Step in Python range()

Als Nächstes wollen wir uns eine andere Art der Arbeit mit der Funktion range() ansehen. Hier gibst du sowohl start als auch den Wert stop an.

range(5,10)
range(5, 10)
for seq in range(5,10):
    print(seq)
5
6
7
8
9

Mit der Funktion range() kannst du auch die negativen ganzzahligen Werte ausdrucken.

for seq in range(-5,0):
    print(seq)
-5
-4
-3
-2
-1
list(range(10,20))
[10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

Fügen wir nun den dritten Parameter, d.h. die step Größe, zur Funktion range() hinzu und finden wir heraus, wie er sich auf die Ausgabe auswirkt. Du gibst den start Punkt als 50, den stop Wert als 1000 und die step Größe als 100 an. Die unten stehende Bereichsfunktion sollte eine Sequenz ausgeben, die mit 50 beginnt und in 100er Schritten aufsteigt.

range(50,1000,100)

Du wirst feststellen, dass er alle geraden Zahlen ausdruckt.

for seq in range(50,1000,100):
    print(seq)
50
150
250
350
450
550
650
750
850
950

Ein Hinweis zu Python range() und Float-Werten

Es ist wichtig zu beachten, dass die Funktion range() nur funktioniert, wenn der angegebene Wert eine ganze Zahl oder eine Ganzzahl ist. Der Datentyp float und der Datentyp string werden nicht unterstützt. Du kannst ihr jedoch sowohl positive als auch negative ganzzahlige Werte übergeben. Schauen wir mal, was passiert, wenn du versuchst, Float-Werte zu übergeben.

for seq in range(0.2,2.4):
    print(seq)
---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-32-4d2f304928d0> in <module>
----> 1 for seq in range(0.2,2.4):
      2     print(seq)


TypeError: 'float' object cannot be interpreted as an integer

Du hast dich bestimmt schon einmal am Kopf gekratzt, als du versucht hast, eine verknüpfte Liste von Ganzzahlwerten in der Sprache C umzukehren. In Python kann man dies jedoch mit der Funktion range() erreichen, indem man einfach start und stop vertauscht und eine negative Schrittweite hinzufügt. Ist das nicht so einfach? Lass es uns herausfinden!

for seq in range(100,10,-10):
    print(seq)
100
90
80
70
60
50
40
30
20

Mit range() die Summe einer Liste ermitteln

Angenommen, du hast eine Liste mit ganzzahligen Werten und möchtest die Summe der Liste ermitteln, aber du verwendest die Funktion range(). Lass uns herausfinden, ob es möglich ist.

Zuerst definierst du die Liste, die aus ganzzahligen Werten besteht. Dann initialisiere einen Zähler, in dem du den Wert jedes Mal speicherst, wenn du über die Liste iterierst, und addiere außerdem den aktuellen Listenwert mit dem alten Zählwert.

Um auf die Elemente der Liste zuzugreifen, wendest du die Funktion range() auf die length der Liste an und greifst dann auf die Listenelemente zu, indem du den Index i umgehst, der bei Null beginnt und bei der Länge der Liste aufhört.

list1 = [2,4,6,8,10,12,14,16,18,20]
count = 0

for i in range(len(list1)):
    count = count + list1[i]
    print(count)
print('sum of the list:', count)
2
6
12
20
30
42
56
72
90
110
sum of the list: 110

Verwendung von range() mit itertools zum Verketten einer Liste

Du könntest auch zwei oder mehr range() Funktionen mit Hilfe der itertools Paketklasse namens chain verketten. Und nicht nur die Funktion range, du könntest auch Listen, Tupel usw. miteinander verketten. Erinnere dich daran, dass die Methode chain ein Generator-Objekt zurückgibt. Um auf die Elemente dieses Generator-Objekts zuzugreifen, kannst du entweder eine for Schleife verwenden oder list benutzen und das Generator-Objekt als Argument übergeben.

from itertools import chain

a1 = range(10,0,-2)
a2 = range(30,20,-2)
a3 = range(50,40,-2)

final = chain(a1,a2,a3)

print(final) #generator object
<itertools.chain object at 0x107155490>
print(list(final))
[10, 8, 6, 4, 2, 30, 28, 26, 24, 22, 50, 48, 46, 44, 42]

Python range() und Gleichheitsvergleiche

Du kannst Gleichheitsvergleiche zwischen range() Funktionen anwenden. Wenn zwei range() Funktionen dieselbe Folge von Werten darstellen, werden sie als gleichwertig betrachtet. Allerdings müssen zwei gleiche range() Funktionen nicht die gleichen start, stop und step Attribute haben. Lass es uns anhand eines Beispiels verstehen.

list(range(0, 10, 3))
[0, 3, 6, 9]
list(range(0, 11, 3))
[0, 3, 6, 9]
range(0, 10, 3) == range(0, 11, 3)
True
range(0, 10, 3) == range(0, 11, 2)
False

Wie du aus den obigen Ausgaben ersehen kannst, sind die Parameter der Funktion range() zwar unterschiedlich, werden aber dennoch als gleich angesehen, da die Reihenfolge der beiden Funktionen gleich ist. Im zweiten Beispiel wird durch die Änderung der step Größe der Vergleich False.

Fazit

Herzlichen Glückwunsch zum Abschluss des Tutorials. Vielleicht möchtest du ein bisschen mit der Funktion range() herumspielen und eine Möglichkeit finden, sie so anzupassen, dass sie auch andere Datentypen als nur Ganzzahlen akzeptiert.

Wenn du nach der Lektüre das Gefühl hast, dass du davon profitieren könntest, Python-Funktionen zu üben, schau dir unsere Tutorials Python-Funktionen und Python für Anfänger für Schleifen an. Wenn du einen strukturierten Lernpfad suchst, schau dir unseren DataCamp-Kurs "Effizienten Python-Code schreiben" an, in dem nicht nur die Funktion range() im Detail behandelt wird, sondern auch allgemeinere Programmierkonzepte, die dir helfen, wirklich effizienten Code zu schreiben, ohne viel Overhead zu haben. 

Themen

Erfahre mehr über Python

Kurs

Writing Functions in Python

4 hr
93K
Learn to use best practices to write maintainable, reusable, complex functions with good documentation.
Siehe DetailsRight Arrow
Kurs starten
Mehr anzeigenRight Arrow
Verwandt

Der Blog

Lehrer/innen und Schüler/innen erhalten das Premium DataCamp kostenlos für ihre gesamte akademische Laufbahn

Keine Hacks, keine Tricks. Schüler/innen und Lehrer/innen, lest weiter, um zu erfahren, wie ihr die Datenerziehung, die euch zusteht, kostenlos bekommen könnt.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

4 Min.

Der Blog

2022-2023 DataCamp Classrooms Jahresbericht

Zu Beginn des neuen Schuljahres ist DataCamp Classrooms motivierter denn je, das Lernen mit Daten zu demokratisieren. In den letzten 12 Monaten sind über 7.650 neue Klassenzimmer hinzugekommen.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

8 Min.

Der Blog

Die 20 besten Snowflake-Interview-Fragen für alle Niveaus

Bist du gerade auf der Suche nach einem Job, der Snowflake nutzt? Bereite dich mit diesen 20 besten Snowflake-Interview-Fragen vor, damit du den Job bekommst!
Nisha Arya Ahmed's photo

Nisha Arya Ahmed

20 Min.

Der Blog

Die 32 besten AWS-Interview-Fragen und Antworten für 2024

Ein kompletter Leitfaden zur Erkundung der grundlegenden, mittleren und fortgeschrittenen AWS-Interview-Fragen, zusammen mit Fragen, die auf realen Situationen basieren. Es deckt alle Bereiche ab und sorgt so für eine abgerundete Vorbereitungsstrategie.
Zoumana Keita 's photo

Zoumana Keita

30 Min.

Der Blog

Top 30 Generative KI Interview Fragen und Antworten für 2024

Dieser Blog bietet eine umfassende Sammlung von Fragen und Antworten zu generativen KI-Interviews, die von grundlegenden Konzepten bis hin zu fortgeschrittenen Themen reichen.
Hesam Sheikh Hassani's photo

Hesam Sheikh Hassani

15 Min.

Der Blog

Q2 2023 DataCamp Donates Digest

DataCamp Donates hat im zweiten Quartal 2023 über 20.000 Stipendien an unsere gemeinnützigen Partner vergeben. Erfahre, wie fleißige benachteiligte Lernende diese Chancen in lebensverändernde berufliche Erfolge verwandelt haben.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

Mehr anzeigenMehr anzeigen