Python range() Funkció: Float, List, For loop Példák
⚡ Okos összefoglaló
Python A range() egy beépített függvény, amely egy megváltoztathatatlan egész számsorozatot generál egy kezdőértéktől egy stop értékig (de azt nem beleértve), egy opcionális lépéssel vezérelve a növekményt.

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) a 0, 1, 2, 3, 4 értékeket adja ki. A Python A range() egy nagyon hasznos parancs, és leginkább akkor használjuk, ha egy iterációt kell végezni. hurokhoz.
Szintaxis
A range() függvény szintaxisa az alábbiakban látható:
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 range függvénynek le kell állnia. Ez a range függvény kötelező bemenete. Az utolsó érték mindig 1-gyel kisebb lesz, mint a stop érték.
- lépés: (opcionális) A lépésköz értéke az a szám, amellyel a tartományban lévő következő számot növelni kell; alapértelmezés szerint ez 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() innen került bevezetésre Python 3-as verzió; előtte az xrange() függvény volt a megfelelő.
Mind a range(), mind az xrange() függvényeket használjuk számsorozatok előállítására.
A range() és az xrange() közötti különbségek a következők:
| 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átor objektumot ad vissza, nem ad azonnal értékeket, és egy 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 kezdet nincs megadva, a kezdetet 0-nak tekintjük, és az utolsó értéket 9-ig adjuk meg. Az utolsó érték mindig 1-gyel kisebb, mint a megadott érték, 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 végérték pedig 10. Itt a kezdőindex 3, tehát a számsorozat 3-tól kezdődik a végértékig. A sorozat utolsó értéke 1-gyel kisebb lesz, mint a végé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ámsorozat 3-mal kezdődik. A végérték 10, tehát a számsorozat (10-1)-nél, azaz 9-nél áll meg. A lépésköz 2, tehát a sorozat minden értéke 2-vel nő. Ha a lépésköz értéke nincs megadva, a lépésköz értéke alapértelmezetten 1.
for i in range(3, 10, 2): print(i, end =" ")
output:
3 5 7 9
Eddig láttuk, hogyan adja vissza a range() függvény a megadott stop értékhez tartozó növelt értéket. Most próbáljunk meg egy példát a megadott tartomány csökkentett értékének lekérésére.
A tartományban lévő értékek növelése pozitív lépéssel
A range() függvény step paramétere használható az értékek növelésére vagy csökkentésére. Alapértelmezés szerint ez egy pozitív érték, 1. Tehát mindig növelt értékeket ad.
A lépésköz értékének pozitívnak kell lennie, ha inkrementált é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ésközzel
A range() függvényben a step paraméter negatív értékkel használható csökkentett értékek lekérésére. Az alábbi példában a lépésköz értéke negatív, így a kimenet a megadott tartományértékhez képest 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ék 5, a lépésköz pedig negatív szám, azaz -1. A fenti bemenetekkel a range() függvény 15-től kezdve csökkenti az értéket a stop értékig, de itt a különbség az, hogy az utolsó érték stop + 1 lesz.
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:
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 értékekhez.
For-loop használata a Python hatótávolság ()
Ebben a példában egy számokból álló tömböt fogunk használni, és megnézzük, hogyan iterálhatjuk a tömböt egy for cikluson belül a range() függvénnyel.
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) függvényt használtuk stop értékként. A for ciklus a stop értékig fog iterálni, azaz a tömb hosszáig, ami 4 lesz, mivel négy elem van az arr_list-ben. A kezdőérték 0, a lépésköz pedig 1 lesz, tehát az értékek 0-tól kezdődnek és 3-nál állnak meg, azaz a tömb hossza -1, ami azt jelenti, hogy 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() függvény használata a bemenetként megadott tartomány páros számainak listáját adja vissza. A range() paraméterei: a start érték 2, a stop érték 20, a step érték pedig 2, tehát az értékek 2-vel nőnek, és a stop-2-ig páros számokat adnak vissza.
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 fogunk összefűzni az itertools modul chain() függvényének 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 egy arange() függvénye, amely hasonló működésű és kimenetet ad, mint a range(). Az arange() ugyanazokat a paramétereket fogadja, 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
Ha végrehajtás közben hibát kapunk, amely szerint a numpy modul nem található, akkor a 2. lépésben látható módon kell telepíteni a modult.
2 lépésTelepí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 sorozatot nem lehet a range() függvénnyel előállítani, de a NumPy arange() függvénnyel igen.
Példa:
A kívánt tartomány 0.5 és 1.5 között van. Az értéket 0.2-vel fogjuk növelni.
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 kissé furcsa; néhány lebegőpontos szám 16 tizedesjegyre van megadva. Ez a decimális lebegőpontos számok bináris formátumban történő tárolásának összetettsége miatt van így. Szükség esetén kerekítheted is az értékeket, és a szükséges tizedesjegyekre korlátozhatod őket.
