Što je raspon Python?
Python range () je ugrađena funkcija dostupna s Pythonom iz Pythona (3.x) i daje niz brojeva na temelju datog indeksa početka i zaustavljanja. U slučaju da početni indeks nije dan, indeks se smatra 0 i on će povećavati vrijednost za 1 do zaustavnog indeksa.
Na primjer, raspon (5) će vam dati vrijednosti 0,1,2,3,4. Python raspon () je vrlo korisna naredba i uglavnom se koristi kada morate iterirati pomoću for petlje.
U ovom vodiču naučit ćete:
- Što je raspon Python?
- Sintaksa
- Python raspon () Funkcija i povijest
- Upotreba raspona ()
- Korištenje pokretanja i zaustavljanja u dometu ()
- Koristeći start, stop i step
- Povećavanje vrijednosti u rasponu pomoću pozitivnog koraka.
- Obrnuti raspon: Smanjivanje vrijednosti pomoću negativnog koraka.
- Korištenje plutajućih brojeva u Python rasponu ()
- Korištenje for-loop s Python rasponom ()
- Korištenje Python range () kao popisa
- Korištenje znakova u rasponu pythona ()
- Kako pristupiti elementima raspona
- Primjer: Dobivanje parnih brojeva pomoću raspona ()
- Spajanje izlaza s dva raspona ()
- Korištenje dometa () s NumPy
Sintaksa
range(start, stop, step)
Parametri
- start: (neobavezno) Početni indeks je cijeli broj, a ako nije dat, zadana vrijednost je 0.
- stop: indeks zaustavljanja određuje vrijednost na kojoj se funkcija raspona mora zaustaviti. Obavezan je unos funkcije raspona. Posljednja vrijednost uvijek će biti 1 manja od vrijednosti zaustavljanja.
- korak: (neobavezno). Vrijednost koraka je broj za koji je sljedeći broj opseg koji se mora povećati, po defaultu je 1.
Povratna vrijednost:
Povratna vrijednost je niz brojeva od zadanog indeksa početka do zaustavljanja.
Python raspon () Funkcija i povijest
Python range () uveden je od python verzije 3, prije nego što je xrange () bila funkcija.
Za izradu niza brojeva koriste se i range i xrange ().
Slijede razlike između raspona i xrange ():
raspon () | xrange () |
Raspon () daje redoslijed brojeva i vraća popis brojeva. | Funkcija xrange () daje objekt generatora koji treba petlje u for-loop da bi se dobile vrijednosti. |
Raspon () vraća popis. | xrange () vraća objekt generatora. |
Metoda range () koristi više memorije jer se vraćeni popis mora pohraniti u usporedbi s xrange (). | Kako xrange () vraća objekt generatora, on ne daje vrijednosti odmah i mora se koristiti unutar for-loop da bi dobio vrijednosti. |
Korištenje memorije je više, stoga je izvršavanje koda sporo kada se radi na velikom skupu podataka. | Izvršenje koda je brže pomoću xrange (). |
Upotreba raspona ()
Ovaj primjer pokazuje kako ispisati vrijednosti od 0-9 pomoću raspona ().
Vrijednost koja se koristi u rasponu je 10, tako da je izlaz 0 1 2 3 4 5 6 7 8 9
Budući da početak nije dan, početak se smatra 0, a zadnja vrijednost daje se do 9. Posljednja vrijednost je uvijek 1 manja od zadane vrijednosti, tj. Stop-1.
for i in range(10):print(i, end =" ")
Izlaz:
0 1 2 3 4 5 6 7 8 9
Korištenje pokretanja i zaustavljanja u dometu ()
U kodu je početna vrijednost 3, a zaustavna vrijednost 10. Ovdje je početni indeks 3, pa će niz brojeva započeti od 3 do zaustavne vrijednosti. Posljednja vrijednost u nizu bit će 1 manja od zaustavne vrijednosti 10-1 = 9.
for i in range(3, 10):print(i, end =" ")
Izlaz:
3 4 5 6 7 8 9
Koristeći start, stop i step
Početna vrijednost je 3, pa će slijed brojeva započeti na 3. Vrijednost zaustavljanja je 10, pa će se niz brojeva zaustaviti na (10-1), tj. 9. Korak je 2, pa će svaka vrijednost u nizu može se povećati za 2. Ako vrijednost koraka nije dana, vrijednost za korak zadana je na 1.
for i in range(3, 10, 2):print(i, end =" ")
Izlaz:
3 5 7 9
Do sada smo vidjeli kako funkcija range () daje uvećanu vrijednost za zadanu vrijednost zaustavljanja. Pokušajmo sada na primjeru kako bismo dobili smanjenu vrijednost u zadanom rasponu.
Povećavanje vrijednosti u rasponu pomoću pozitivnog koraka.
Korak parametra u rasponu () može se koristiti za povećanje / smanjenje vrijednosti. Prema zadanim postavkama to je pozitivna vrijednost 1. Dakle, uvijek će dati povećane vrijednosti.
Vrijednost koraka mora biti pozitivna ako želite da povećane vrijednosti izlaze.
for i in range(1, 30, 5):print(i, end =" ")
Izlaz:
1 6 11 16 21 26
Obrnuti raspon: Smanjivanje vrijednosti pomoću negativnog koraka.
Korak parametra s negativnom vrijednošću u rasponu () može se koristiti za dobivanje smanjenih vrijednosti. U primjeru ispod, vrijednost koraka je negativna, tako da će se izlaz smanjivati od zadane vrijednosti raspona.
for i in range(15, 5, -1):print(i, end =" ")
Izlaz:
15 14 13 12 11 10 9 8 7 6
Početna vrijednost je 15, zaustavna vrijednost je 5, a vrijednost koraka je negativan broj, tj. -1. S gornjim ulazima funkcija range () smanjit će vrijednost od 15 nadalje dok ne dosegne vrijednost zaustavljanja, ali ovdje je razlika zadnja vrijednost koja će biti stop + 1.
Korištenje plutajućih brojeva u Python rasponu ()
Poradimo sada na rasponu () pomoću brojeva s pomičnom zarezom.
Primjer:
for i in range(10.5):print(i, end =" ")
U gornjem primjeru koristili smo zaustavnu vrijednost kao 10,5.
Izlaz je:
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 daje pogrešku jer funkcija range () ne podržava brojeve s pomičnom zarezom za početak, zaustavljanje i korak.
Korištenje for-loop s Python rasponom ()
U ovom primjeru koristit ćemo niz brojeva i, pogledajmo kako koristiti iteraciju niza unutar for-loop pomoću raspona ()
Primjer:
arr_list = ['Mysql', 'Mongodb', 'PostgreSQL', 'Firebase']for i in range(len(arr_list)):print(arr_list[i], end =" ")
Izlaz:
MysqlMongodb PostgreSQL Firebase
U gornjem primjeru koristili smo len (arr_list) kao zaustavnu vrijednost. Petlja for ponovit će se do zaustavne vrijednosti, tj. Duljine niza i to će biti 4, jer na popisu arr_list imamo četiri stavke. Početna vrijednost bit će 0, a korak 1. Dakle, vrijednosti će početi od 0 i zaustavit će se na 3, tj. Duljina niza -1, što znači 4 -1 = 3.
Korištenje Python range () kao popisa
U ovom primjeru vidjet ćemo kako iskoristiti izlaz iz raspona kao popis.
Primjer:
print(list(range(10)))
Izlaz:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Možete vidjeti da je izlaz format popisa. Nije bilo potrebno petlju opsega () koristiti metodom list () i mogli bismo izravno pretvoriti izlaz iz raspona u format popisa.
Korištenje znakova u rasponu pythona ()
Do sada smo koristili cijele brojeve u python rasponu (). Također smo vidjeli da brojevi s pomičnom zarezom nisu podržani u rasponu pythona. Pokušajmo vidjeti izlaz što se događa kada koristimo znakove.
Primjer:
for c in range ('z'):print(c, end =" ")
Izlaz:
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
Dobacuje pogrešku govoreći da se niz ne može protumačiti kao cijeli broj.
Da biste dobili popis abeceda, možete prilagoditi kod i dobiti željene izlaze prikazane dolje:
Primjer:
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)))
Izlaz:
['a', 'b', 'c', 'd', 'e', 'f', 'g']
Kako pristupiti elementima raspona
Možete koristiti for-loop za dobivanje vrijednosti iz raspona ili pomoću indeksa za pristup elementima iz raspona ().
Korištenje for-loop
Primjer:
for i in range(6):print(i)
Izlaz:
012345
Korištenje indeksa
Indeks se koristi s rasponom da bi se dobila vrijednost dostupna na tom položaju. Ako je vrijednost raspona 5, da biste dobili početnu vrijednost, možete koristiti raspon (5) [0] i sljedeći raspon vrijednosti (5) [1] i tako dalje.
Primjer:
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)
Izlaz:
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)
Upotreba popisa ()
Ova metoda ispisat će sve elemente iz raspona (). Korištenjem list () vratit će elemente iz raspona () u formatu popisa.
Primjer:
print(list(range(10)))
Izlaz:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Daje izlaz popisa za zadani raspon.
Primjer: Dobivanje parnih brojeva pomoću raspona ()
Korištenjem range () dobit ćete popis parnih brojeva u rasponu navedenom kao ulaz. Parametri za range () su, start je 2, stop je 20 i korak je 2, tako da će se vrijednosti povećavati za 2 i davat će parne brojeve do stop-2.
Primjer:
for i in range(2, 20, 2):print(i, end =" ")
Izlaz:
2 4 6 8 10 12 14 16 18
Spajanje izlaza s dva raspona ()
U ovom primjeru spojit će se 2 funkcije range () uz pomoć funkcije lanca itertools ().
Primjer:
from itertools import chainprint("Merging two range into one")frange =chain(range(10), range(10, 20, 1))for i in frange:print(i, end=" ")
Izlaz:
Merging two range into one0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Korištenje dometa () s NumPy
NumPy modul ima funkciju arange () koja radi i daje slične izlaze poput raspona (). Aranžman () uzima iste parametre poput raspona ().
Sintaksa:
arange(start, stop, step)
Za rad s NumPy slijedite korake dane u nastavku.
Korak 1 : Uvoz modula NumPy
import numpy
U slučaju da se izvrši, pojavljuje se pogreška, jer numpy modul nije pronađen, morate instalirati modul kako je prikazano u koraku 2.
Korak 2 : Instalirajte NumPy
pip install numpy
Korak 3 : Radni primjer arange () pomoću NumPy-a
import numpy as npfor i in np.arange(10):print(i, end =" ")
Izlaz:
0 1 2 3 4 5 6 7 8 9
Brojevi s pomičnim zarezom pomoću NumPy arange ()
Nije moguće dobiti sekvencu s pomičnom zarezom pomoću raspona (), ali je moguće pomoću NumPy arange ().
Primjer:
Raspon koji želimo je od 0,5 do 1,5. Vrijednost će se povećati za 0,2.
import numpy as npfor i in np.arange(0.5, 1.5, 0.2):print(i, end =" ")
Izlaz:
0.5 0.7 0.8999999999999999 1.0999999999999999 1.2999999999999998
Rezultat koji dobivamo je malo čudan, neki brojevi s pomičnim brojem prikazani su sa 16 decimalnih mjesta. To se događa zbog složenosti pohrane decimalnih plutajućih brojeva u binarni format. Također možete zaokružiti vrijednosti ako je potrebno i ograničiti ih na decimalna mjesta koja su vam potrebna.
Sažetak:
- Python range () je ugrađena funkcija dostupna s Pythonom iz Pythona (3.x) i daje niz brojeva na temelju datog indeksa početka i zaustavljanja. U slučaju da početni indeks nije dat, indeks se smatra 0 i on će povećavati vrijednost do zaustavnog indeksa.
- Python range () uveden je od python verzije 3, prije nego što je xrange () bila funkcija.
- Raspon () daje redoslijed brojeva i vraća popis brojeva. Funkcija xrange () daje objekt generatora koji treba petlje u for-loop da bi se dobile vrijednosti.
- Korak parametra u rasponu () može se koristiti za povećanje / smanjenje vrijednosti. Prema zadanim postavkama to je pozitivna vrijednost 1. Dakle, uvijek će dati povećane vrijednosti.
- Python daje pogrešku za brojeve s pomičnom zarezom jer funkcija range () podržava samo cjelobrojne vrijednosti.
- Vrijednostima iz range () može se pristupiti pomoću for-loop, koristeći index i list ()
- NumPy modul ima funkciju arange () koja radi i daje slične izlaze poput raspona (). Arange () uzima iste parametre kao i range ().
- Pomoću raspona () moguće je dobiti niz numPy s pomičnim zarezom () koji nije podržan.