Python range()-Funktion: Float, List, For-Schleife Beispiele
Was ist Python Bereich?
Python range() ist eine integrierte Funktion, die verfรผgbar ist mit Python von Python(3.x) und gibt eine Zahlenfolge basierend auf dem angegebenen Start- und Stoppindex aus. Falls der Startindex nicht angegeben ist, wird der Index als 0 betrachtet und der Wert wird bis zum Stoppindex um 1 erhรถht.
Beispielsweise gibt range(5) die Werte 0,1,2,3,4 aus. Python range() ist ein sehr nรผtzlicher Befehl und wird hauptsรคchlich verwendet, wenn Sie mit einer For-Schleife iterieren mรผssen.
Syntax
range(start, stop, step)
Kenngrรถรen
- Start: (optional) Der Startindex ist eine Ganzzahl. Wenn er nicht angegeben wird, ist der Standardwert 0.
- hรถr auf Der Stoppindex bestimmt den Wert, bei dem die Bereichsfunktion stoppen muss. Es handelt sich um eine obligatorische Eingabe fรผr die Bereichsfunktion. Der letzte Wert ist immer 1 kleiner als der Stoppwert.
- Schritt: (optional). Der Schrittwert ist die Zahl, um die die nรคchste Zahl im Bereich erhรถht werden muss. Standardmรครig ist er 1.
Rรผckgabewert
Der Rรผckgabewert ist eine Zahlenfolge vom angegebenen Start- bis zum Stoppindex.
Python range() Funktion und Verlauf
Python range() wurde ab Python Version 3 eingefรผhrt, davor war xrange() die Funktion.
Sowohl range als auch xrange() werden verwendet, um eine Zahlenfolge zu erzeugen.
Im Folgenden sind die Unterschiede zwischen range und xrange() aufgefรผhrt:
| Reichweite() | Bereich () |
|---|---|
| Die Funktion range() gibt die Zahlenfolge an und gibt eine Liste von Zahlen zurรผck. | Die Funktion xrange() gibt ein Generatorobjekt zurรผck, das in einer For-Schleife ausgefรผhrt werden muss, um die Werte zu erhalten. |
| Die range() gibt eine Liste zurรผck. | xrange() gibt ein Generatorobjekt zurรผck. |
| Die Methode range() benรถtigt im Vergleich zu xrange() mehr Speicher, da die zurรผckgegebene Liste gespeichert werden muss. | Da xrange() ein Generatorobjekt zurรผckgibt, liefert es die Werte nicht sofort, sondern muss in einer For-Schleife verwendet werden, um die Werte abzurufen. |
| Die Speichernutzung ist hรถher, daher ist die Codeausfรผhrung langsam, wenn an groรen Datenmengen gearbeitet wird. | Die Codeausfรผhrung ist mit xrange() schneller. |
Verwenden von range()
Dieses Beispiel zeigt, wie die Werte von 0-9 mit range() gedruckt werden.
Der im Bereich verwendete Wert ist 10, daher ist die Ausgabe 0 1 2 3 4 5 6 7 8 9
Da der Start nicht angegeben ist, wird der Start als 0 betrachtet und der letzte Wert wird bis 9 angegeben. Der letzte Wert ist immer 1 kleiner als der angegebene Wert, dh Stopp-1.
for i in range(10):
print(i, end =" ")
Ausgang:
0 1 2 3 4 5 6 7 8 9
Verwenden von Start und Stop in range()
Im Code ist der Startwert 3 und der Stoppwert 10. Hier ist der Startindex 3, sodass die Zahlenfolge bei 3 beginnt und bis zum Stoppwert reicht. Der letzte Wert in der Folge ist 1 kleiner als der Stoppwert 10-1 = 9.
for i in range(3, 10):
print(i, end =" ")
Ausgang:
3 4 5 6 7 8 9
Verwenden von Start, Stopp und Schritt
Der Startwert ist 3, die Zahlenfolge beginnt also bei 3. Der Stoppwert ist 10, die Zahlenfolge endet also bei (10-1), also bei 9. Die Schrittweite betrรคgt 2, jeder Wert in der Folge wird also um 2 erhรถht. Wenn der Schrittwert nicht angegeben ist, ist der Wert fรผr โSchrittโ standardmรครig 1.
for i in range(3, 10, 2):
print(i, end =" ")
Ausgang:
3 5 7 9
Bisher haben wir gesehen, wie die Funktion range() den inkrementierten Wert fรผr den angegebenen Stoppwert angibt. Versuchen wir nun ein Beispiel, um den dekrementierten Wert im angegebenen Bereich zu erhalten.
Erhรถhen der Werte im Bereich mit einem positiven Schritt.
Mit dem Parameter step in range() kรถnnen die Werte erhรถht/dekrementiert werden. Standardmรครig ist es ein positiver Wert 1. Es werden also immer inkrementierte Werte ausgegeben.
Der Schrittwert muss positiv sein, wenn Sie inkrementierte Werte als Ausgabe wรผnschen.
for i in range(1, 30, 5):
print(i, end =" ")
Ausgang:
1 6 11 16 21 26
Reverse Range: Dekrementieren der Werte mit negativen Schritten
Der Parameter step mit negativem Wert in range() kann verwendet werden, um dekrementierte Werte zu erhalten. Im folgenden Beispiel ist der Schrittwert negativ, sodass die Ausgabe ausgehend vom angegebenen Bereichswert dekrementiert wird.
for i in range(15, 5, -1):
print(i, end =" ")
Ausgang:
15 14 13 12 11 10 9 8 7 6
Der Startwert ist 15, der Stoppwert ist 5 und der Schrittwert ist eine negative Zahl, also -1. Mit den obigen Eingaben verringert die Funktion โrange()โ den Wert von 15 aufwรคrts, bis er den Stoppwert erreicht, aber hier besteht der Unterschied darin, dass der letzte Wert Stopp + 1 ist.
Die Verwendung von Gleitkommazahlen in Python Reichweite()
Lassen Sie uns nun mit Gleitkommazahlen am Bereich () arbeiten.
Ejemplo:
for i in range(10.5):
print(i, end =" ")
Im obigen Beispiel haben wir den Stoppwert 10.5 verwendet.
Die Ausgabe ist:
Traceback (most recent call last):
File "python_range.py", line 1, in <module>
for i in range(10.5):
TypeError: 'float' object cannot be interpreted as an integer
Python gibt einen Fehler aus, da die Funktion range() keine Gleitkommazahlen fรผr Start, Stopp und Schritt unterstรผtzt.
Verwenden einer For-Schleife mit Python Reichweite()
In diesem Beispiel verwenden wir ein Array von Zahlen und schauen uns an, wie man das Array in einer For-Schleife mit range() iteriert.
Ejemplo:
arr_list = ['Mysql', 'Mongodb', 'PostgreSQL', 'Firebase']
for i in range(len(arr_list)):
print(arr_list[i], end =" ")
Ausgang:
MysqlMongodb PostgreSQL Firebase
Im obigen Beispiel haben wir len(arr_list) als Stoppwert verwendet. Die for-Schleife wird bis zum Stoppwert iterieren, dh bis zur Lรคnge des Arrays, und diese betrรคgt 4, da wir vier Elemente in der arr_list haben. Der Startwert ist 0 und die Schrittweite ist 1. Die Werte beginnen also bei 0 und enden bei 3, d. h. die Lรคnge des Arrays betrรคgt -1, was 4 -1 = 3 bedeutet.
Die Verwendung von Python range() als Liste
In diesem Beispiel erfahren Sie, wie Sie die Ausgabe des Bereichs als Liste verwenden.
Ejemplo:
print(list(range(10)))
Ausgang:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Sie kรถnnen sehen, dass die Ausgabe ein Listenformat ist. Es war nicht notwendig, die Funktion โrange()โ in einer Schleife auszufรผhren, und mit der Methode โlist()โ konnten wir die Ausgabe direkt vom Bereichsformat in das Listenformat konvertieren.
Verwendung von Zeichen im Python-Bereich ()
Bisher haben wir Ganzzahlen in Python range() verwendet. Wir haben auch gesehen, dass Gleitkommazahlen in Python range() nicht unterstรผtzt werden. Lassen Sie uns versuchen, die Ausgabe zu sehen, was passiert, wenn wir Zeichen verwenden.
Ejemplo:
for c in range ('z'):
print(c, end =" ")
Ausgang:
Traceback (most recent call last):
File "python_range.py", line 1, in <module>
for c in range ('z'):
TypeError: 'str' object cannot be interpreted as an integer
Es wird ein Fehler ausgegeben, der besagt, dass eine Zeichenfolge nicht als Ganzzahl interpretiert werden kann.
Um die Liste der Alphabete zu erhalten, kรถnnen Sie den Code anpassen und die gewรผnschte Ausgabe erhalten, wie unten gezeigt:
Ejemplo:
def get_alphabets(startletter, stopletter, step):
for c in range(ord(startletter.lower()), ord(stopletter.lower()), step):
yield chr(c)
print(list(get_alphabets("a", "h", 1)))
Ausgang:
['a', 'b', 'c', 'd', 'e', 'f', 'g']
So greifen Sie auf Bereichselemente zu
Sie kรถnnen eine for-Schleife verwenden, um die Werte aus dem Bereich abzurufen, oder den Index verwenden, um รผber range() auf die Elemente zuzugreifen.
For-Schleife verwenden
Ejemplo:
for i in range(6):
print(i)
Ausgang:
0 1 2 3 4 5
Mit Index
Der Index wird mit Bereich verwendet, um den an dieser Position verfรผgbaren Wert abzurufen. Wenn der Bereichswert 5 ist, kรถnnen Sie zum Erhalten des Startwerts range(5)[0] und den nรคchsten Wert range(5)[1] usw. verwenden.
Ejemplo:
startvalue = range(5)[0]
print("The first element in range is = ", startvalue)
secondvalue = range(5)[1]
print("The second element in range is = ", secondvalue)
lastvalue = range(5)[-1]
print("The first element in range is = ", lastvalue)
Ausgang:
The first element in range is = 0 The second element in range is = 1 The first element in range is = 4
Verwenden von list()
Diese Methode druckt alle Elemente aus range(). Mit list() werden die Elemente von range() im Listenformat zurรผckgegeben.
Ejemplo:
print(list(range(10)))
Ausgang:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Es gibt die Listenausgabe fรผr den angegebenen Bereich.
Beispiel: Erhalten Sie gerade Zahlen mit range()
Mit range() erhalten Sie die Liste der geraden Zahlen im als Eingabe angegebenen Bereich. Die Parameter fรผr range() lauten: Start ist 2, Stopp ist 20 und Schritt ist 2, daher werden die Werte um 2 erhรถht und ergeben gerade Zahlen bis Stopp-2.
Ejemplo:
for i in range(2, 20, 2):
print(i, end =" ")
Ausgang:
2 4 6 8 10 12 14 16 18
Zwei-Range()-Ausgaben zusammenfรผhren
In diesem Beispiel werden zwei Range()-Funktionen mit Hilfe der Chain()-Funktion des Itertools-Moduls verkettet.
Ejemplo:
from itertools import chain
print("Merging two range into one")
frange =chain(range(10), range(10, 20, 1))
for i in frange:
print(i, end=" ")
Ausgang:
Merging two range into one 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Verwenden von range() mit NumPy
Das NumPy-Modul verfรผgt รผber die Funktion arange(), die funktioniert und eine รคhnliche Ausgabe wie range() liefert. Die Funktion โarrange()โ รผbernimmt die gleichen Parameter wie โrange()โ.
Syntax:
arange(start, stop, step)
Um mit NumPy zu arbeiten, befolgen Sie die unten aufgefรผhrten Schritte.
Schritt 1:: NumPy-Modul importieren
import numpy
Falls wรคhrend der Ausfรผhrung die Fehlermeldung angezeigt wird, dass das Numpy-Modul nicht gefunden wurde, mรผssen Sie das Modul wie in Schritt 2 gezeigt installieren.
Schritt 2:: NumPy installieren
pip install numpy
Schritt 3:: Arbeitsbeispiel von arange() mit NumPy
import numpy as np for i in np.arange(10): print(i, end =" ")
Ausgang:
0 1 2 3 4 5 6 7 8 9
Gleitkommazahlen mit NumPy arange()
Es ist nicht mรถglich, die Gleitkommasequenz mit range() abzurufen, wohl aber mit NumPy arange().
Ejemplo:
Der von uns gewรผnschte Bereich liegt zwischen 0.5 und 1.5. Der Wert wird um 0.2 erhรถht.
import numpy as np for i in np.arange(0.5, 1.5, 0.2): print(i, end =" ")
Ausgang:
0.5 0.7 0.8999999999999999 1.0999999999999999 1.2999999999999998
Die Ausgabe, die wir erhalten, ist etwas seltsam, da einige der Gleitkommazahlen mit 16 Dezimalstellen angezeigt werden. Dies liegt an der Komplexitรคt der Speicherung von dezimalen Gleitkommazahlen im Binรคrformat. Sie kรถnnen die Werte bei Bedarf auch runden und auf die benรถtigten Dezimalstellen beschrรคnken.
Zusammenfassung
- Python range() ist eine integrierte Funktion, die verfรผgbar ist mit Python von Python(3.x) und gibt eine Zahlenfolge basierend auf dem angegebenen Start- und Stoppindex aus. Falls der Startindex nicht angegeben ist, wird der Index als 0 betrachtet und der Wert wird bis zum Stoppindex erhรถht.
- Python range() wurde eingefรผhrt von Python-Version 3, davor war xrange() die Funktion.
- Die Funktion range() liefert die Zahlenfolge und gibt eine Liste von Zahlen zurรผck. Die Funktion xrange() liefert ein Generatorobjekt, das in einer For-Schleife durchlaufen werden muss, um die Werte abzurufen.
- Mit dem Parameter step in range() kรถnnen die Werte erhรถht/dekrementiert werden. Standardmรครig ist es ein positiver Wert 1. Es werden also immer inkrementierte Werte ausgegeben.
- Python gibt einen Fehler fรผr Gleitkommazahlen aus, da die Funktion range() nur ganzzahlige Werte unterstรผtzt.
- Auf die Werte von range() kann mit einer for-Schleife, mit index und list() zugegriffen werden.
- Das NumPy-Modul verfรผgt รผber die Funktion arange(), die funktioniert und eine รคhnliche Ausgabe wie range() liefert. arange() รผbernimmt die gleichen Parameter wie range().
- Es ist mรถglich, die nicht unterstรผtzte Gleitkommasequenz NumPy arange() mit range() abzurufen.
