Python range() Funcție: Float, Listă, Exemple de buclă For
⚡ Rezumat inteligent
Python range() este o funcție încorporată care generează o secvență imuabilă de numere întregi de la o valoare de început până la, dar fără a include, o valoare de sfârșit, folosind un pas opțional pentru a controla incrementarea.

Ce Este Python Gamă?
Python range() este o funcție încorporată disponibilă cu Python de la Python (3.x) și oferă o secvență de numere bazată pe indexul de start și oprire dat. În cazul în care indicele de start nu este dat, indicele este considerat 0 și va crește valoarea cu 1 până la indicele de oprire.
De exemplu, range(5) va afișa valorile 0, 1, 2, 3, 4. Python range() este o comandă foarte utilă și este utilizată mai ales atunci când trebuie să iterezi folosind un pentru bucla.
Sintaxă
Sintaxa funcției range() este prezentată mai jos:
range(start, stop, step)
parametrii
- începe: (opțional) Indexul de început este un număr întreg și, dacă nu este dat, valoarea implicită este 0.
- Stop: Indexul de oprire decide valoarea la care funcția de interval trebuie să se oprească. Este o intrare obligatorie pentru funcția de interval. Ultima valoare va fi întotdeauna cu 1 mai mică decât valoarea de oprire.
- Etapa: (opțional) Valoarea pasului este numărul cu care trebuie incrementat următorul număr din interval; implicit, este 1.
Valoare returnată
Valoarea returnată este o secvență de numere de la indexul dat de la început la oprire.
Python range() Funcție și istoric
Python range() a fost introdus de la Python versiunea 3; înainte de aceasta, funcția era xrange().
Atât range() cât și xrange() sunt folosite pentru a genera o secvență de numere.
Următoarele sunt diferențele dintre range() și xrange():
| gamă() | xrange() |
|---|---|
| Range() oferă secvența de numere și returnează o listă de numere. | Funcția xrange() oferă un obiect generator care trebuie buclat într-o buclă for pentru a obține valorile. |
| Range() returnează o listă. | xrange() returnează un obiect generator. |
| Metoda range() folosește mai multă memorie deoarece lista returnată trebuie să fie stocată în comparație cu xrange(). | Deoarece xrange() returnează un obiect generator, nu oferă valori instantaneu și trebuie utilizată în interiorul unei bucle for pentru a obține valorile. |
| Utilizarea memoriei este mai mare, prin urmare, execuția codului este lentă atunci când se lucrează cu un set imens de date. | Execuția codului este mai rapidă folosind xrange(). |
Folosind range()
Acest exemplu arată cum să imprimați valorile de la 0 la 9 utilizând range().
Valoarea utilizată în interval este 10, deci ieșirea este 0 1 2 3 4 5 6 7 8 9.
Deoarece începutul nu este dat, acesta este considerat 0, iar ultima valoare este dată până la 9. Ultima valoare este întotdeauna cu 1 mai mică decât valoarea dată, adică stop-1.
for i in range(10): print(i, end =" ")
ieșire:
0 1 2 3 4 5 6 7 8 9
Folosind start și stop în interval()
În cod, valoarea de început este 3, iar valoarea de sfârșit este 10. Aici, indicele de început este 3, deci secvența de numere va începe de la 3 până la valoarea de sfârșit. Ultima valoare din secvență va fi cu 1 mai mică decât valoarea de sfârșit, 10-1 = 9.
for i in range(3, 10): print(i, end =" ")
ieșire:
3 4 5 6 7 8 9
Folosind start, stop și step
Valoarea de început este 3, deci secvența de numere va începe de la 3. Valoarea de sfârșit este 10, deci secvența de numere se va opri la (10-1), adică 9. Pasul este 2, deci fiecare valoare din secvență va fi incrementată cu 2. Dacă valoarea pasului nu este dată, valoarea implicită pentru pas este 1.
for i in range(3, 10, 2): print(i, end =" ")
ieșire:
3 5 7 9
Până acum, am văzut cum funcția range() dă valoarea incrementată pentru valoarea de oprire dată. Să încercăm acum un exemplu pentru a obține valoarea decrementată în intervalul dat.
Incrementarea valorilor din interval folosind un pas pozitiv
Parametrul step din range() poate fi folosit pentru a incrementa sau decrementa valorile. În mod implicit, este o valoare pozitivă, 1. Deci va da întotdeauna valori incrementate.
Valoarea pasului trebuie să fie pozitivă în cazul în care doriți valori incrementate ca ieșire.
for i in range(1, 30, 5): print(i, end =" ")
ieșire:
1 6 11 16 21 26
Reverse Interval: Decrementarea valorilor folosind un pas negativ
Parametrul step cu o valoare negativă în range() poate fi utilizat pentru a obține valori decrementate. În exemplul de mai jos, valoarea pasului este negativă, deci ieșirea va fi decrementată față de valoarea intervalului dată.
for i in range(15, 5, -1): print(i, end =" ")
ieșire:
15 14 13 12 11 10 9 8 7 6
Valoarea de început este 15, valoarea de oprire este 5, iar valoarea pasului este un număr negativ, adică -1. Cu intrările de mai sus, funcția range() va decrementa valoarea de la 15 încolo până când ajunge la valoarea de oprire, dar aici diferența este că ultima valoare va fi stop + 1.
Folosind numere flotante în Python gamă()
Să lucrăm acum la range() folosind numere în virgulă mobilă.
Exemplu:
for i in range(10.5): print(i, end =" ")
În exemplul de mai sus, am folosit valoarea stop ca fiind 10.5.
Rezultatul este:
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 dă o eroare deoarece funcția range() nu acceptă numere în virgulă mobilă pentru start, stop și step.
Folosind for-loop cu Python gamă()
În acest exemplu, vom folosi un tablou de numere și vom vedea cum se iterează tabloul în interiorul unei bucle for folosind range().
Exemplu:
arr_list = ['Mysql', 'Mongodb', 'PostgreSQL', 'Firebase'] for i in range(len(arr_list)): print(arr_list[i], end =" ")
ieșire:
MysqlMongodb PostgreSQL Firebase
În exemplul de mai sus, am folosit len(arr_list) ca valoare de oprire. Bucla for va itera până la valoarea de oprire, adică lungimea tabloului, care va fi 4, deoarece avem patru elemente în arr_list. Valoarea de început va fi 0, iar step va fi 1, deci valorile vor începe de la 0 și se vor opri la 3, adică lungimea tabloului -1, ceea ce înseamnă 4 -1 = 3.
Utilizarea Python range() ca o listă
În acest exemplu, vom vedea cum să utilizați rezultatul din interval ca o listă.
Exemplu:
print(list(range(10)))
ieșire:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Puteți vedea că rezultatul este un format de listă. Nu a fost necesar să facem bucla range() și folosind metoda list() am putut converti direct rezultatul din interval în format listă.
Utilizarea caracterelor din gama Python()
Până acum, am folosit numere întregi în python range(). De asemenea, am văzut că numerele în virgulă mobilă nu sunt acceptate în intervalul Python. Să încercăm să vedem rezultatul cu privire la ceea ce se întâmplă atunci când folosim caractere.
Exemplu:
for c in range ('z'):
print(c, end =" ")
ieșire:
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
Se afișează o eroare care spune că un șir nu poate fi interpretat ca un întreg.
Pentru a obține lista de alfabete, puteți personaliza codul și obține rezultatul dorit, așa cum se arată mai jos:
Exemplu:
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)))
ieșire:
['a', 'b', 'c', 'd', 'e', 'f', 'g']
Cum să accesați elementele de gamă
Puteți utiliza o buclă for pentru a obține valorile din interval sau puteți utiliza indexul pentru a accesa elementele din range().
Folosind for-loop
Exemplu:
for i in range(6):
print(i)
ieșire:
0 1 2 3 4 5
Folosind index
Indicele este utilizat cu interval pentru a obține valoarea disponibilă la acea poziție. Dacă valoarea intervalului este 5, pentru a obține valoarea de pornire, puteți utiliza intervalul (5)[0] și următorul interval de valori (5)[1] și așa mai departe.
Exemplu:
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)
ieșire:
The first element in range is = 0 The second element in range is = 1 The first element in range is = 4
Folosind list()
Această metodă va imprima toate elementele din gama (). Folosind list() va returna elementele din range() în format listă.
Exemplu:
print(list(range(10)))
ieșire:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Oferă ieșirea listei pentru intervalul dat.
Exemplu: obțineți numere pare folosind range()
Folosirea funcției range() va obține lista numerelor pare din intervalul dat ca intrare. Parametrii pentru range() sunt: start este 2, stop este 20, iar step este 2, deci valorile vor fi incrementate cu 2 și vor da numere pare până la stop-2.
Exemplu:
for i in range(2, 20, 2): print(i, end =" ")
ieșire:
2 4 6 8 10 12 14 16 18
Îmbinarea ieșirilor cu două game().
În acest exemplu, vom concatena 2 funcții range() cu ajutorul funcției chain() a modulului itertools.
Exemplu:
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=" ")
ieșire:
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
Folosind range() cu NumPy
Modulul NumPy are o funcție arange() care funcționează și oferă un rezultat similar cu range(). Funcția arange() primește aceiași parametri ca și range().
Sintaxă:
arange(start, stop, step)
Pentru a lucra cu NumPy, urmați pașii de mai jos.
Etapa 1: Importă modulul NumPy
import numpy
În cazul în care, în timpul execuției, apare o eroare care spune că modulul numpy nu a fost găsit, trebuie să instalați modulul așa cum se arată în pasul 2.
Etapa 2Instalați NumPy
pip install numpy
Etapa 3: Exemplu de lucru pentru arange() folosind NumPy
import numpy as np for i in np.arange(10): print(i, end =" ")
ieșire:
0 1 2 3 4 5 6 7 8 9
Numere în virgulă mobilă folosind NumPy arange()
Nu este posibil să obțineți secvența în virgulă mobilă folosind range(), dar este posibil folosind NumPy arange().
Exemplu:
Intervalul dorit este de la 0.5 la 1.5. Valoarea va fi incrementată cu 0.2.
import numpy as np for i in np.arange(0.5, 1.5, 0.2): print(i, end =" ")
ieșire:
0.5 0.7 0.8999999999999999 1.0999999999999999 1.2999999999999998
Rezultatul pe care îl obținem este puțin ciudat; unele dintre numerele cu virgulă mobilă sunt afișate cu 16 zecimale. Acest lucru se întâmplă din cauza complexității stocării numerelor zecimale cu virgulă mobilă în format binar. De asemenea, puteți rotunji valorile, dacă este necesar, și le puteți limita la zecimalele de care aveți nevoie.
