Die Funktion range() ist in Python echt beliebt und wird oft benutzt, vor allem wenn du mit for-Schleifen arbeitest, manchmal auch mit while-Schleifen. Die Funktion range() ist echt nützlich und es lohnt sich, sie zu lernen, weil sie dir viele Möglichkeiten eröffnet: range() wird für alles Mögliche benutzt, von der Steuerung des Programmablaufs bis hin zum Durchlaufen von Datensätzen, die du für die Datenanalyse verwendest.
Die Funktion range() gibt eine Zahlenfolge zurück und ist unveränderlich, das heißt, ihr Wert ist fest. Die Funktion range() braucht ein oder höchstens drei Argumente: den Wert start, den Wert stop und die Größe step.
range() wurde in Python3 eingeführt. In Python2 wurde eine ähnliche Funktion namens xrange() benutzt, die sich ein bisschen anders verhielt. Unter anderem hat xrange() ein Generatorobjekt zurückgegeben und weniger Speicher verbraucht, während range() eine Liste oder eine Folge von Zahlen zurückgibt.
Die Funktion range() ist unter anderem deshalb so praktisch, weil sie nur die Werte start, stop und step speichert und dadurch weniger Speicherplatz braucht als eine Liste oder ein Tupel.
Python-Funktion range() – Syntax
Die Funktion range() kann auf drei verschiedene Arten dargestellt werden, oder du kannst sie dir als drei Parameter range() vorstellen:
range(stop_value): Standardmäßig ist der Startpunkt hier Null.
range(start_value, stop_value): Das macht die Sequenz anhand des Start- und Stoppwerts.
range(start_value, stop_value, step_size): Es macht die Sequenz, indem es den Startwert mit der Schrittweite erhöht, bis es den Endwert erreicht.
Python-Funktion range(). Bild vom Autor.
Wir können auch den Typ der Funktion range() überprüfen, indem wir range() in type() einfügen.
my_range =range(100)print(type(my_range))# Expected output: <class 'range'>Bereitgestellt von
Editor zum Lernen anhand von Beispielen: Drücke Tab, um loszulegen. Drücke Escape und dann Tab oder Umschalt+Tab, um den Editor zu verlassen.
Schauen wir uns jetzt ein paar Beispiele an, damit du üben und den Umgang mit range() lernen kannst.
Mit Python range() eine Zahlenfolge ausgeben
Fangen wir mit einem einfachen Beispiel an, bei dem wir eine Folge von zehn Zahlen ausdrucken. Dabei geht's um deinen ersten Parameter range(). Dazu gibst du einfach den Wert stop ein. Da Python mit einer nullbasierten Indizierung arbeitet, fängt die Sequenz bei Null an und hört bei der angegebenen Zahl auf, also n-1, wobei n die Zahl ist, die in der Funktion range() angegeben wurde.
my_range =range(10)for num in my_range:print(num)# Expected output:# 0# 1# 2# 3# 4# 5# 6# 7# 8# 9Bereitgestellt von
Editor zum Lernen anhand von Beispielen: Drücke Tab, um loszulegen. Drücke Escape und dann Tab oder Umschalt+Tab, um den Editor zu verlassen.
Wie erwartet gibt die obige Zelle eine Zahlenfolge zurück, die mit 0 anfängt und mit 9 endet.
Python range() mit list() verwenden
Du kannst die Range-Funktion auch als Argument für eine Liste verwenden. In diesem Fall bekommst du eine Liste mit Zahlen, deren Länge dem Stoppwert entspricht, wie unten gezeigt:
Als Nächstes schauen wir uns eine andere Möglichkeit an, mit der Funktion range() zu arbeiten. Hier gibst du sowohl den Wert start als auch den Wert stop an.
my_range =range(5,10)print(my_range)# Expected output: range(5, 10)Bereitgestellt von
Editor zum Lernen anhand von Beispielen: Drücke Tab, um loszulegen. Drücke Escape und dann Tab oder Umschalt+Tab, um den Editor zu verlassen.
Fügen wir jetzt den dritten Parameter, also die Größe step, zur Funktion range() hinzu und schauen wir mal, wie sich das auf die Ausgabe auswirkt. Du gibst den Punkt start mit 50 an, den Wert stop mit 1000 und die Größe step mit 100. Die folgende Range-Funktion soll eine Folge ausgeben, die bei 50 anfängt und in 100er-Schritten weitergeht.
my_range =range(50,1000,100)print(my_range)# Expected output: range(50, 1000, 100)Bereitgestellt von
Editor zum Lernen anhand von Beispielen: Drücke Tab, um loszulegen. Drücke Escape und dann Tab oder Umschalt+Tab, um den Editor zu verlassen.
Es ist wichtig zu wissen, dass die Funktion range() nur funktioniert, wenn der angegebene Wert eine ganze Zahl ist. Es unterstützt nicht den Datentyp „float“ und den Datentyp „string“. Du kannst aber sowohl positive als auch negative ganzzahlige Werte übergeben. Mal sehen, was passiert, wenn du versuchst, Float-Werte zu übergeben.
for num inrange(0.2,2.4):print(num)# Expected output:# TypeError: 'float' object cannot be interpreted as an integerBereitgestellt von
Editor zum Lernen anhand von Beispielen: Drücke Tab, um loszulegen. Drücke Escape und dann Tab oder Umschalt+Tab, um den Editor zu verlassen.
Du hättest dir bestimmt mindestens einmal den Kopf zerbrochen, als du versucht hast, eine verkettete Liste von Ganzzahlwerten in der Programmiersprache C umzukehren. In Python kann man das aber mit der Funktion range() machen, indem man einfach start und stop vertauscht und eine negative Schrittweite hinzufügt. Ist das nicht einfach? Lass es uns herausfinden!
for num inrange(100,10,-10):print(num)# Expected output:# 100# 90# 80# 70# 60# 50# 40# 30# 20Bereitgestellt von
Editor zum Lernen anhand von Beispielen: Drücke Tab, um loszulegen. Drücke Escape und dann Tab oder Umschalt+Tab, um den Editor zu verlassen.
Angenommen, du hast eine Liste mit ganzzahligen Werten und möchtest die Summe der Liste berechnen, aber mit der Funktion range(). Lass uns herausfinden, ob das geht.
Zuerst legst du die Liste fest, die aus ganzen Zahlen besteht. Dann starte einen Zähler, in dem du jedes Mal, wenn du die Liste durchläufst, den Wert speicherst und auch den aktuellen Listenwert zum alten Zählwert hinzufügst.
Um auf die Elemente aus der Liste zuzugreifen, musst du die Funktion range() auf den length der Liste anwenden und dann auf die Listenelemente zugreifen, indem du den Index i umgehst, der bei Null beginnt und bei der Länge der Liste endet.
list1 =[2,4,6,8,10,12,14,16,18,20]
count =0for i inrange(len(list1)):
count = count + list1[i]print(count)print('sum of the list:', count)# Expected output:# 2# 6# 12# 20# 30# 42# 56# 72# 90# 110# sum of the list: 110Bereitgestellt von
Editor zum Lernen anhand von Beispielen: Drücke Tab, um loszulegen. Drücke Escape und dann Tab oder Umschalt+Tab, um den Editor zu verlassen.
Mit range() und itertools eine Liste zusammenfügen
Du kannst auch zwei oder mehr range()-Funktionen mit der itertools-Paketklasse namens chain verbinden. Und nicht nur die Funktion range, du kannst sogar Listen, Tupel usw. verknüpfen. Denk dran, dass die Methode chain ein Generatorobjekt zurückgibt. Um auf die Elemente dieses Generatorobjekts zuzugreifen, kannst du entweder eine for-Schleife verwenden oder list nutzen und das Generatorobjekt 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# Expected output: <itertools.chain object at 0xae6330>Bereitgestellt von
Editor zum Lernen anhand von Beispielen: Drücke Tab, um loszulegen. Drücke Escape und dann Tab oder Umschalt+Tab, um den Editor zu verlassen.
Du kannst Gleichheitsvergleiche zwischen Funktionen von range() machen. Wenn zwei Funktionen range() die gleiche Abfolge von Werten haben, sind sie gleich. Allerdings müssen zwei gleiche Funktionen range() nicht unbedingt die gleichen Attribute start, stop und step haben. Lass es uns anhand eines Beispiels verstehen.
Wie du den obigen Ausgaben entnehmen kannst, werden die Parameter der Funktion range() trotz ihrer Unterschiede als gleich angesehen, da die Reihenfolge beider Funktionen identisch ist. Im zweiten Beispiel führt die Änderung der Größe von step dazu, dass der Vergleich False lautet.
Fazit
Glückwunsch, dass du das Tutorial geschafft hast. Vielleicht möchtest du ein bisschen mit der Funktion range() herumspielen und einen Weg finden, sie so anzupassen, dass sie auch andere Datentypen als nur Ganzzahlen akzeptiert.
Wenn du nach dem Lesen das Gefühl hast, dass du von Python-Funktionen profitieren könntest, schau dir unsere Tutorials zu Python-Funktionen und unseren Leitfaden für Anfänger zu Python-Schleifen an. Für einen strukturierten Lernpfad schau dir unseren DataCamp-Kurs Writing Efficient Python Code an, der nicht nur die Funktion range() im Detail behandelt, sondern auch allgemeinere Programmierkonzepte vermittelt, damit du wirklich effizienten Code ohne großen Aufwand schreiben kannst.
Lerne die Funktionen und Methoden von Python-Listen kennen. Schau dir jetzt die Code-Beispiele für list() und andere Python-Funktionen und -Methoden an!
Lerne mehr über Python-Lambda-Funktionen, wozu sie gut sind und wann man sie benutzt. Enthält praktische Beispiele und bewährte Methoden für eine effektive Umsetzung.
Ein umfassendes Einführungs-Tutorial zu Python-Schleifen. Lerne und übe while- und for-Schleifen, verschachtelte Schleifen, die Schlüsselwörter break und continue, die Range-Funktion und vieles mehr!
Die Funktion
range()ist in Python echt beliebt und wird oft benutzt, vor allem wenn du mitfor-Schleifen arbeitest, manchmal auch mitwhile-Schleifen. Die Funktionrange()ist echt nützlich und es lohnt sich, sie zu lernen, weil sie dir viele Möglichkeiten eröffnet:range()wird für alles Mögliche benutzt, von der Steuerung des Programmablaufs bis hin zum Durchlaufen von Datensätzen, die du für die Datenanalyse verwendest.Wenn du gerade erst mit Python anfängst und mehr darüber lernen möchtest, schau dir den Kurs Einführung in die Datenwissenschaft mit Python von DataCamp an.
Was ist die Funktion range() in Python?
Die Funktion
range()gibt eine Zahlenfolge zurück und ist unveränderlich, das heißt, ihr Wert ist fest. Die Funktionrange()braucht ein oder höchstens drei Argumente: den Wertstart, den Wertstopund die Größestep.range()wurde in Python3 eingeführt. In Python2 wurde eine ähnliche Funktion namensxrange()benutzt, die sich ein bisschen anders verhielt. Unter anderem hatxrange()ein Generatorobjekt zurückgegeben und weniger Speicher verbraucht, währendrange()eine Liste oder eine Folge von Zahlen zurückgibt.Die Funktion
range()ist unter anderem deshalb so praktisch, weil sie nur die Wertestart,stopundstepspeichert und dadurch weniger Speicherplatz braucht als eine Liste oder ein Tupel.Python-Funktion range() – Syntax
Die Funktion
range()kann auf drei verschiedene Arten dargestellt werden, oder du kannst sie dir als drei Parameterrange()vorstellen:range(stop_value): Standardmäßig ist der Startpunkt hier Null.range(start_value, stop_value): Das macht die Sequenz anhand des Start- und Stoppwerts.range(start_value, stop_value, step_size): Es macht die Sequenz, indem es den Startwert mit der Schrittweite erhöht, bis es den Endwert erreicht.Wir können auch den Typ der Funktion
range()überprüfen, indem wirrange()intype()einfügen.Beispiele für die Python-Funktion range()
Schauen wir uns jetzt ein paar Beispiele an, damit du üben und den Umgang mit
range()lernen kannst.Mit Python range() eine Zahlenfolge ausgeben
Fangen wir mit einem einfachen Beispiel an, bei dem wir eine Folge von zehn Zahlen ausdrucken. Dabei geht's um deinen ersten Parameter
range(). Dazu gibst du einfach den Wertstopein. Da Python mit einer nullbasierten Indizierung arbeitet, fängt die Sequenz bei Null an und hört bei der angegebenen Zahl auf, alson-1, wobeindie Zahl ist, die in der Funktionrange()angegeben wurde.Wie erwartet gibt die obige Zelle eine Zahlenfolge zurück, die mit
0anfängt und mit9endet.Python range() mit list() verwenden
Du kannst die Range-Funktion auch als Argument für eine Liste verwenden. In diesem Fall bekommst du eine Liste mit Zahlen, deren Länge dem Stoppwert entspricht, wie unten gezeigt:
Start, Stopp und Schritt in Python range() nutzen
Als Nächstes schauen wir uns eine andere Möglichkeit an, mit der Funktion
range()zu arbeiten. Hier gibst du sowohl den Wertstartals auch den Wertstopan.Genauso kannst du die Funktion
range()nutzen, um auch negative ganzzahlige Werte auszudrucken.Fügen wir jetzt den dritten Parameter, also die Größe
step, zur Funktionrange()hinzu und schauen wir mal, wie sich das auf die Ausgabe auswirkt. Du gibst den Punktstartmit 50 an, den Wertstopmit 1000 und die Größestepmit 100. Die folgende Range-Funktion soll eine Folge ausgeben, die bei 50 anfängt und in 100er-Schritten weitergeht.Du wirst sehen, dass alle geraden Zahlen ausgegeben werden.
Ein Hinweis zu Python range() und Float-Werten
Es ist wichtig zu wissen, dass die Funktion
range()nur funktioniert, wenn der angegebene Wert eine ganze Zahl ist. Es unterstützt nicht den Datentyp „float“ und den Datentyp „string“. Du kannst aber sowohl positive als auch negative ganzzahlige Werte übergeben. Mal sehen, was passiert, wenn du versuchst, Float-Werte zu übergeben.Du hättest dir bestimmt mindestens einmal den Kopf zerbrochen, als du versucht hast, eine verkettete Liste von Ganzzahlwerten in der Programmiersprache C umzukehren. In Python kann man das aber mit der Funktion
range()machen, indem man einfachstartundstopvertauscht und eine negative Schrittweite hinzufügt. Ist das nicht einfach? Lass es uns herausfinden!Mit range() die Summe einer Liste berechnen
Angenommen, du hast eine Liste mit ganzzahligen Werten und möchtest die Summe der Liste berechnen, aber mit der Funktion
range(). Lass uns herausfinden, ob das geht.Zuerst legst du die Liste fest, die aus ganzen Zahlen besteht. Dann starte einen Zähler, in dem du jedes Mal, wenn du die Liste durchläufst, den Wert speicherst und auch den aktuellen Listenwert zum alten Zählwert hinzufügst.
Um auf die Elemente aus der Liste zuzugreifen, musst du die Funktion
range()auf denlengthder Liste anwenden und dann auf die Listenelemente zugreifen, indem du den Indexiumgehst, der bei Null beginnt und bei der Länge der Liste endet.Mit range() und itertools eine Liste zusammenfügen
Du kannst auch zwei oder mehr
range()-Funktionen mit deritertools-Paketklasse namenschainverbinden. Und nicht nur die Funktionrange, du kannst sogar Listen, Tupel usw. verknüpfen. Denk dran, dass die Methodechainein Generatorobjekt zurückgibt. Um auf die Elemente dieses Generatorobjekts zuzugreifen, kannst du entweder einefor-Schleife verwenden oderlistnutzen und das Generatorobjekt als Argument übergeben.Python range() und Gleichheitsvergleiche
Du kannst Gleichheitsvergleiche zwischen Funktionen von
range()machen. Wenn zwei Funktionenrange()die gleiche Abfolge von Werten haben, sind sie gleich. Allerdings müssen zwei gleiche Funktionenrange()nicht unbedingt die gleichen Attributestart,stopundstephaben. Lass es uns anhand eines Beispiels verstehen.Wie du den obigen Ausgaben entnehmen kannst, werden die Parameter der Funktion
range()trotz ihrer Unterschiede als gleich angesehen, da die Reihenfolge beider Funktionen identisch ist. Im zweiten Beispiel führt die Änderung der Größe vonstepdazu, dass der VergleichFalselautet.Fazit
Glückwunsch, dass du das Tutorial geschafft hast. Vielleicht möchtest du ein bisschen mit der Funktion
range()herumspielen und einen Weg finden, sie so anzupassen, dass sie auch andere Datentypen als nur Ganzzahlen akzeptiert.Wenn du nach dem Lesen das Gefühl hast, dass du von Python-Funktionen profitieren könntest, schau dir unsere Tutorials zu Python-Funktionen und unseren Leitfaden für Anfänger zu Python-Schleifen an. Für einen strukturierten Lernpfad schau dir unseren DataCamp-Kurs Writing Efficient Python Code an, der nicht nur die Funktion
range()im Detail behandelt, sondern auch allgemeinere Programmierkonzepte vermittelt, damit du wirklich effizienten Code ohne großen Aufwand schreiben kannst.