Python range()-Funktion: Float, List, For-Schleife Beispiele
Was ist Python Bereich?
Python range() ist eine integrierte Funktion, die verfügbar ist mit Python für 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)
Parameter
- 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 für 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.