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.