Ce este gama Python?
Gama Python () este o funcție încorporată disponibilă cu Python de la Python (3.x) și oferă o succesiune de numere pe baza indexului de start și stop dat. În cazul în care indicele de pornire nu este dat, indicele este considerat 0 și va crește valoarea cu 1 până la indicele de oprire.
De exemplu, intervalul (5) vă va afișa valori 0,1,2,3,4. Intervalul Python () este o comandă foarte utilă și este utilizată mai ales atunci când trebuie să iterați folosind bucla for.
În acest tutorial, veți învăța:
- Ce este gama Python?
- Sintaxă
- Gama Python () Funcție și istoric
- Utilizarea intervalului ()
- Utilizarea pornirii și opririi în intervalul ()
- Folosind Start, Stop și Step
- Incrementarea valorilor în interval folosind un pas pozitiv.
- Gama inversă: scăderea valorilor folosind pasul negativ.
- Utilizarea numerelor flotante în intervalul Python ()
- Folosirea for-loop cu gama Python ()
- Folosind gama Python () ca listă
- Utilizarea caracterelor în intervalul python ()
- Cum se accesează elementele de gamă
- Exemplu: obțineți numere pare utilizând range ()
- Fuzionarea ieșirilor cu două game ()
- Utilizarea intervalului () Cu NumPy
Sintaxă
range(start, stop, step)
Parametrii
- start: (opțional) Indexul de start este un număr întreg, iar dacă nu este dat, valoarea implicită este 0.
- oprire: indicele de oprire decide valoarea la care funcția intervalului trebuie să se oprească. Este o intrare obligatorie pentru funcția de gamă. Ultima valoare va fi întotdeauna cu 1 mai mică decât valoarea de oprire.
- pas: (opțional). Valoarea pasului este numărul cu care urmează numărul următor trebuie să fie mărit, în mod implicit, este 1.
Valoare returnată:
Valoarea returnată este o secvență de numere de la începutul dat pentru a opri indexul.
Gama Python () Funcție și istoric
Gama Python () a fost introdusă din versiunea 3 a python, înainte ca funcția să fie xrange ().
Atât intervalul, cât și xrange () sunt utilizate pentru a produce o succesiune de numere.
Următoarele sunt diferența dintre interval și xrange ():
gamă() | xrange () |
Gama () oferă secvența numerelor ș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. |
Gama () returnează o listă. | xrange () returnează un obiect generator. |
Metoda range () folosește mai multă memorie deoarece lista returnată trebuie stocată în comparație cu xrange (). | Deoarece xrange () returnează un obiect generator, acesta nu dă valori instantaneu și trebuie utilizat în bucla for pentru a obține valorile. |
Utilizarea memoriei este mai mare, prin urmare, execuția codului este lentă atunci când se lucrează la un set imens de date. | Executarea codului este mai rapidă folosind xrange (). |
Utilizarea intervalului ()
Acest exemplu arată cum să imprimați valorile de la 0 la 9 folosind range ().
Valoarea utilizată în interval este 10, deci ieșirea este 0 1 2 3 4 5 6 7 8 9
Deoarece startul nu este dat, startul este considerat 0 și 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
Utilizarea pornirii și opririi în intervalul ()
În cod, valoarea de pornire este 3, iar valoarea de oprire este 10. Aici indexul de pornire este 3, deci secvența numerelor va începe de la 3 până la valoarea de oprire. Ultima valoare din secvență va fi cu 1 mai mică decât valoarea de oprire 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 inițială este 3, deci secvența numerelor va începe la 3. Valoarea oprire este 10, deci secvența numerelor se va opri la (10-1) adică 9. Pasul este 2, deci fiecare valoare din secvență va să fie incrementat cu 2. Dacă valoarea pasului nu este dată, valoarea pentru pas este implicită la 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 () oferă valoarea incrementată pentru valoarea de oprire dată. Să încercăm acum un exemplu pentru a obține valoarea decrementată în intervalul dat.
Incrementarea valorilor în interval folosind un pas pozitiv.
Pasul parametrului în intervalul () poate fi utilizat pentru a crește / micșora 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 să 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
Gama inversă: scăderea valorilor folosind pasul negativ.
Pasul parametrului cu valoare negativă în intervalul () poate fi utilizat pentru a obține valori decrementate. În exemplul de mai jos, valoarea pasului este negativă, astfel încât ieșirea va fi diminuată de la 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 pornire este 15, valoarea de oprire este 5 și valoarea pasului este un număr negativ, adică -1. Cu intrările de mai sus, funcția range () va scădea valoarea de la 15 în sus până când atinge valoarea stop, dar aici diferența este că ultima valoare va fi stop + 1.
Utilizarea numerelor flotante în intervalul Python ()
Să lucrăm acum pe 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 10,5.
Ieșirea este:
Traceback (most recent call last):File "python_range.py", line 1, infor 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 pornire, oprire și pas.
Folosirea for-loop cu gama Python ()
În acest exemplu vom folosi o matrice de numere și, să vedem cum să folosim iterați matricea din interiorul buclei 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 și care va fi 4, deoarece avem patru elemente în lista arr_. Valoarea de pornire va fi 0 și pasul va fi 1. Deci valorile vor începe de la 0 și se vor opri la 3, adică lungimea matricei -1, adică 4 -1 = 3.
Folosind gama Python () ca listă
În acest exemplu, veți vedea cum să utilizați ieșirea din interval ca 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ă buclăm intervalul () și folosind metoda list () am putut converti direct ieșirea din interval în formatul listei.
Utilizarea caracterelor în intervalul python ()
Până acum, am folosit numere întregi în intervalul python (). De asemenea, am văzut că numerele cu virgulă mobilă nu sunt acceptate în intervalul python. Să încercăm să vedem rezultatul 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, infor c in range ('z'):TypeError: 'str' object cannot be interpreted as an integer
Aruncă o eroare spunând că un șir nu poate fi interpretat ca un întreg.
Pentru a obține lista alfabetelor, puteți personaliza codul și puteți obține rezultatele dorite, 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 se accesează elementele de gamă
Puteți utiliza o buclă for pentru a obține valorile din interval sau utilizați indexul pentru a accesa elementele din interval ().
Folosind for-loop
Exemplu:
for i in range(6):print(i)
Ieșire:
012345
Folosind index
Indicele este utilizat cu interval pentru a obține valoarea disponibilă în 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:
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)
Utilizarea listei ()
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 utilizând range ()
Folosind intervalul () veți obține lista numerelor pare din intervalul dat ca intrare. Parametrii pentru intervalul () sunt, pornirea este 2, oprirea este 20 și pasul este 2, astfel încât valorile vor fi incrementate cu 2 și vor da numere pare până la oprirea-2.
Exemplu:
for i in range(2, 20, 2):print(i, end =" ")
Ieșire:
2 4 6 8 10 12 14 16 18
Fuzionarea ieșirilor cu două game ()
În acest exemplu se vor concatena 2 funcții range () cu ajutorul funcției itertools module chain ().
Exemplu:
from itertools import chainprint("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 one0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Utilizarea intervalului () Cu NumPy
Modulul NumPy are funcția arange () care funcționează și oferă o ieșire similară ca range (). Aranjamentul () ia aceiași parametri ca range ().
Sintaxă:
arange(start, stop, step)
Pentru a lucra cu NumPy urmați pașii de mai jos.
Pasul 1 : Importați modulul NumPy
import numpy
Incase în timpul executării, dă o eroare spunând că modulul numpy nu a fost găsit, trebuie să instalați modulul așa cum se arată în pasul 2.
Pasul 2 : Instalați NumPy
pip install numpy
Pasul 3 : Exemplu de lucru arange () folosind NumPy
import numpy as npfor i in np.arange(10):print(i, end =" ")
Ieșire:
0 1 2 3 4 5 6 7 8 9
Numere în virgulă mobilă utilizând aranjamentul NumPy ()
Nu este posibil să obțineți secvența în virgulă mobilă folosind range (), dar este posibil utilizând aranjamentul NumPy ().
Exemplu:
Gama pe care o dorim este de la 0,5 la 1,5. Valoarea va fi incrementată cu 0,2.
import numpy as npfor 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 flotante sunt afișate cu 16 zecimale. Acest lucru se întâmplă datorită complexității stocării numerelor flotante zecimale în format binar. De asemenea, puteți rotunji valorile dacă este necesar și le puteți limita la zecimale de care aveți nevoie.
Rezumat:
- Gama Python () este o funcție încorporată disponibilă cu Python de la Python (3.x) și oferă o succesiune de numere pe baza indexului de start și stop dat. În cazul în care indicele de pornire nu este dat, indicele este considerat 0 și va crește valoarea până la indicele de oprire.
- Gama Python () a fost introdusă din versiunea python 3, înainte ca funcția să fie xrange ().
- Gama () oferă secvența numerelor ș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.
- Pasul parametrului în intervalul () poate fi utilizat pentru a crește / micșora valorile. În mod implicit, este o valoare pozitivă 1. Deci va da întotdeauna valori incrementate.
- Python dă o eroare pentru numerele cu virgulă mobilă, deoarece funcția range () acceptă numai valori întregi.
- Valorile din intervalul () pot fi accesate folosind for-loop, folosind index și list ()
- Modulul NumPy are funcția arange () care funcționează și oferă o ieșire similară ca range (). Arange () ia aceiași parametri ca range ().
- Este posibil să obțineți secvența în virgulă mobilă NumPy arange () care nu este acceptată folosind range ().