Python range() Funkció: Float, List, For loop Példák
Mi a Python Hatótávolság?
Python A range() egy beépített függvény, amellyel elérhető Python ból ből Python(3.x), és a megadott kezdő- és leállítási index alapján ad egy számsort. Ha a start index nincs megadva, az index 0-nak számít, és 1-gyel növeli az értéket a stop indexig.
Például a range(5) 0,1,2,3,4 értékeket ad ki .The Python A range() egy nagyon hasznos parancs, és többnyire akkor használatos, amikor a for ciklus használatával kell iterálni.
Szintaxis
range(start, stop, step)
paraméterek
- Rajt: (nem kötelező) A kezdőindex egy egész szám, és ha nincs megadva, az alapértelmezett érték 0.
- állj meg: A stop index határozza meg azt az értéket, amelynél a tartományfüggvénynek meg kell állnia. Ez egy kötelező bemenet a tartományfüggvényhez. Az utolsó érték mindig 1-gyel kisebb lesz, mint a stop érték.
- lépés: (opcionális). A lépésérték az a szám, amellyel a következő tartomány számot növelni kell, alapértelmezés szerint 1.
Visszatérési érték
A visszatérési érték egy számsorozat az adott starttól a stop indexig.
Python range() Funkció és előzmények
Python A range() a python 3-as verziójából került bevezetésre, előtte az xrange() volt a függvény.
A tartomány és az xrange() is egy számsorozat létrehozására szolgál.
Az alábbiakban látható a különbség a tartomány és az xrange() között:
hatótávolság () | xrange() |
---|---|
A range() megadja a számsort, és egy számlistát ad vissza. | Az xrange() függvény egy generátor objektumot ad, amelyet for-ciklusban kell hurkolni, hogy megkapjuk az értékeket. |
A range() egy listát ad vissza. | Az xrange() egy generátor objektumot ad vissza. |
A range() metódus több memóriát használ, mivel a visszaadott listát tárolni kell az xrange()-hoz képest. | Mivel az xrange() egy generátorobjektumot ad vissza, nem ad azonnali értékeket, és a for cikluson belül kell használni az értékek lekéréséhez. |
A memóriahasználat nagyobb, ezért a kód végrehajtása lassú, ha hatalmas adathalmazon dolgozunk. | A kód végrehajtása gyorsabb az xrange() használatával. |
A range() használata
Ez a példa bemutatja, hogyan nyomtathatja ki a 0-9 értékeket a range() használatával.
A tartományban használt érték 10, így a kimenet 0 1 2 3 4 5 6 7 8 9
Mivel a start nincs megadva, az indítást 0-nak tekintjük, és az utolsó értéket 9-ig adjuk meg. Az utolsó érték mindig 1-gyel kisebb a megadott értéknél, azaz stop-1.
for i in range(10): print(i, end =" ")
output:
0 1 2 3 4 5 6 7 8 9
Start és stop in range() használata
A kódban a kezdőérték 3, a stop érték 10. Itt a start index 3, tehát a számsor 3-tól a stop értékig indul. A sorozat utolsó értéke 1-gyel kisebb lesz, mint a stop érték 10-1 = 9.
for i in range(3, 10): print(i, end =" ")
output:
3 4 5 6 7 8 9
Start, stop és step használata
A kezdőérték 3, tehát a számsor 3-tól kezdődik. A leállítási érték 10, tehát a számsor megáll (10-1) azaz 9-nél. A lépés 2, tehát a sorozat minden értéke Ha a lépésérték nincs megadva, a lépés értéke alapértelmezés szerint 2.
for i in range(3, 10, 2): print(i, end =" ")
output:
3 5 7 9
Eddig azt láttuk, hogy a range() függvény hogyan adja meg a megnövekedett értéket a megadott stop értékhez. Most próbáljunk meg egy példát, hogy megkapjuk a csökkentett értéket a megadott tartományban.
A tartományban lévő értékek növelése pozitív lépéssel.
A range() paraméter lépése használható az értékek növelésére/csökkentésére. Alapértelmezés szerint ez egy pozitív érték 1. Így mindig növekményes értékeket ad.
A lépésértéknek pozitívnak kell lennie abban az esetben, ha növekményes értékeket szeretne kimenetként.
for i in range(1, 30, 5): print(i, end =" ")
output:
1 6 11 16 21 26
Reverse Tartomány: Az értékek csökkentése negatív lépéssel
A range() tartományban negatív értékű paraméterlépéssel csökkentett értékeket kaphatunk. Az alábbi példában a lépésérték negatív, így a kimenet a megadott tartományértéktől csökken.
for i in range(15, 5, -1): print(i, end =" ")
output:
15 14 13 12 11 10 9 8 7 6
A kezdőérték 15, a stop értéke 5, a lépésérték pedig negatív szám, azaz -1. A fenti bemenetekkel a range() függvény 15-től csökkenti az értéket, amíg el nem éri a stop értéket, de itt a különbség az utolsó érték a stop + 1.
Lebegő számok használata Python hatótávolság ()
Most dolgozzunk a range()-n lebegőpontos számok segítségével.
Példa:
for i in range(10.5): print(i, end =" ")
A fenti példában a stop értéket 10.5-ként használtuk.
A kimenet a következő:
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 hibát ad, mivel a range() függvény nem támogatja a lebegőpontos számokat a start, stop és step esetében.
For-loop használata a Python hatótávolság ()
Ebben a példában egy számtömböt fogunk használni, és nézzük meg, hogyan kell használni a tömb iterációját a for-loopban a range() segítségével.
Példa:
arr_list = ['Mysql', 'Mongodb', 'PostgreSQL', 'Firebase'] for i in range(len(arr_list)): print(arr_list[i], end =" ")
output:
MysqlMongodb PostgreSQL Firebase
A fenti példában a len(arr_list)-t használtuk stop értékként. A for ciklus a stop értékig, azaz a tömb hosszáig iterál, és ez 4 lesz, mivel négy elemünk van az arr_listában. A kezdőérték 0 lesz, a lépés pedig 1. Tehát az értékek 0-tól indulnak és 3-ban állnak meg, azaz a tömb hossza -1, azaz 4 -1 = 3.
<p></p> Python range() listaként
Ebben a példában látni fogjuk, hogyan lehet listaként használni a tartomány kimenetét.
Példa:
print(list(range(10)))
output:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Láthatja, hogy a kimenet lista formátumú. Nem volt szükség a range() ciklusra, és a list() metódussal közvetlenül konvertálhattuk a kimenetet tartományból lista formátumba.
A python range() karaktereinek használata
Eddig egész számokat használtunk a python range()-ben. Azt is láttuk, hogy a lebegőpontos számok nem támogatottak a python tartományban. Próbáljuk meg megnézni a kimenetet, hogy mi történik, ha karaktereket használunk.
Példa:
for c in range ('z'): print(c, end =" ")
output:
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
Hibát ad ki, miszerint egy karakterlánc nem értelmezhető egész számként.
Az ábécék listájának eléréséhez testreszabhatja a kódot, és megkaphatja a kívánt kimenetet az alábbiak szerint:
Példa:
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)))
output:
['a', 'b', 'c', 'd', 'e', 'f', 'g']
A tartományelemek elérése
Használhat for-ciklust az értékek lekéréséhez a tartományból, vagy használhatja az indexet a range() elemeinek eléréséhez.
For-loop használata
Példa:
for i in range(6): print(i)
output:
0 1 2 3 4 5
Index használata
Az indexet a tartománnyal együtt használják az adott pozícióban elérhető érték meghatározásához. Ha a tartomány értéke 5, akkor a kezdőérték lekéréséhez használhatja a tartomány(5)[0] és a következő értéktartomány(5)[1] és így tovább.
Példa:
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)
output:
The first element in range is = 0 The second element in range is = 1 The first element in range is = 4
A lista() használata
Ez a módszer kinyomtatja a range() összes elemét. A list() használatával visszaadja a range() elemeit lista formátumban.
Példa:
print(list(range(10)))
output:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Megadja a lista kimenetét a megadott tartományhoz.
Példa: Páros számok beszerzése a range() használatával
A range() segítségével a bemenetként megadott tartomány páros számainak listáját kapja meg. A range() paraméterei a következők: start 2, stop 20 és step 2, így az értékek 2-vel nőnek, és páros számokat adnak a stop-2-ig.
Példa:
for i in range(2, 20, 2): print(i, end =" ")
output:
2 4 6 8 10 12 14 16 18
Két-tartomány() kimenetek egyesítése
Ebben a példában 2 range() függvényt fog összefűzni az itertools module chain() függvény segítségével.
Példa:
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=" ")
output:
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
A range() használata a NumPy-val
A NumPy modulnak van arange() függvénye, amely működik, és hasonló kimenetet ad, mint a range(). Az arrange() ugyanazokat a paramétereket veszi fel, mint a range().
Syntax:
arange(start, stop, step)
A NumPy használatához kövesse az alábbi lépéseket.
1 lépés: NumPy modul importálása
import numpy
Abban az esetben, ha végrehajtás közben hibaüzenet jelenik meg, és azt írja ki, hogy a modul nem található, telepítenie kell a modult a 2. lépésben látható módon.
2 lépés: Telepítse a NumPy-t
pip install numpy
3 lépés: Az arange() működő példája a NumPy használatával
import numpy as np for i in np.arange(10): print(i, end =" ")
output:
0 1 2 3 4 5 6 7 8 9
Lebegőpontos számok a NumPy arange() használatával
A lebegőpontos szekvenciát a range() segítségével nem lehet megszerezni, de a NumPy arange() használatával igen.
Példa:
A kívánt tartomány 0.5 és 1.5 között van. Az érték 0.2-vel növekszik.
import numpy as np for i in np.arange(0.5, 1.5, 0.2): print(i, end =" ")
output:
0.5 0.7 0.8999999999999999 1.0999999999999999 1.2999999999999998
A kapott kimenet egy kicsit furcsa, néhány lebegő szám 16 tizedesjegygel jelenik meg. Ez a decimális lebegő számok bináris formátumban történő tárolásának bonyolultsága miatt történik. Az értékeket szükség esetén kerekítheti is, és a szükséges tizedesjegyekre korlátozhatja.
Összegzésként
- Python A range() egy beépített függvény, amellyel elérhető Python ból ből Python(3.x), és a megadott kezdő- és leállítási index alapján ad egy számsort. Abban az esetben, ha a start index nincs megadva, az indexet 0-nak tekintjük, és az értéket a stop indexig növeli.
- Python A range() innen került bevezetésre python 3-as verzió, előtte az xrange() volt a függvény.
- A range() megadja a számsort, és egy számlistát ad vissza. Az xrange() függvény egy generátor objektumot ad, amelyet for-ciklusban kell hurkolni, hogy megkapjuk az értékeket.
- A range() paraméter lépése használható az értékek növelésére/csökkentésére. Alapértelmezés szerint ez egy pozitív érték 1. Így mindig növekményes értékeket ad.
- Python hibát ad a lebegőpontos számoknál, mivel a range() függvény csak egész értékeket támogat.
- A range() értékei a for-loop, az index és a list() használatával érhetők el
- A NumPy modulnak van arange() függvénye, amely működik, és hasonló kimenetet ad, mint a range(). Az arange() ugyanazokat a paramétereket veszi fel, mint a range().
- A range() segítségével beszerezhető a nem támogatott NumPy arange() lebegőpontos sorozat.