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 richtigen 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.
