Python Rang() Funkcija: Float, List, Primjeri petlje For
โก Pametni saลพetak
Python range() je ugraฤena funkcija koja generira nepromjenjivi niz cijelih brojeva od poฤetne vrijednosti do, ali ne ukljuฤujuฤi, krajnje vrijednosti, koristeฤi opcionalni korak za kontrolu prirasta.

ล to je Python Raspon?
Python range() je ugraฤena funkcija dostupna s Python iz Python (3.x), i daje niz brojeva na temelju danog poฤetnog i zavrลกnog indeksa. U sluฤaju da poฤetni indeks nije dan, indeks se smatra 0, te ฤe poveฤavati vrijednost za 1 do indeksa zaustavljanja.
Na primjer, range(5) ฤe ispisati vrijednosti 0, 1, 2, 3, 4. Python range() je vrlo korisna naredba i uglavnom se koristi kada morate iterirati pomoฤu za petlju.
Sintaksa
Sintaksa funkcije range() prikazana je u nastavku:
range(start, stop, step)
Parametri
- poฤetak: (neobavezno) Indeks poฤetka je cijeli broj, a ako nije dan, zadana vrijednost je 0.
- Stop: Indeks zaustavljanja odreฤuje vrijednost na kojoj se funkcija raspona mora zaustaviti. To je obavezni ulaz u funkciju raspona. Posljednja vrijednost uvijek ฤe biti za 1 manja od vrijednosti zaustavljanja.
- korak: (neobavezno) Vrijednost koraka je broj za koji se sljedeฤi broj u rasponu mora poveฤati; prema zadanim postavkama, to je 1.
Povratna vrijednost
Povratna vrijednost je niz brojeva od zadanog indeksa poฤetka do kraja.
Python range() Funkcija i povijest
Python range() je uveden iz Python verzija 3; prije toga, xrange() je bila funkcija.
I range() i xrange() se koriste za generiranje niza brojeva.
Slijede razlike izmeฤu range() i xrange():
| raspon() | xrange() |
|---|---|
| Rang() daje niz brojeva i vraฤa popis brojeva. | Funkcija xrange() daje generatorski objekt koji se mora pokrenuti u for-petlji da bi se dobile vrijednosti. |
| Rang() 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(). | Buduฤi da xrange() vraฤa objekt generatora, ne daje vrijednosti odmah i mora se koristiti unutar for-petlje za dobivanje vrijednosti. |
| Koriลกtenje memorije je veฤe, stoga je izvrลกavanje koda sporo pri radu s velikim skupom podataka. | Izvrลกenje koda je brลพe koriลกtenjem xrange(). |
Koriลกtenje raspona()
Ovaj primjer pokazuje kako ispisati vrijednosti od 0-9 pomoฤu range().
Vrijednost koriลกtena u rasponu je 10, pa je izlaz 0 1 2 3 4 5 6 7 8 9.
Buduฤi da poฤetak nije zadan, poฤetak se smatra 0, a zadnja vrijednost je zadana do 9. Zadnja vrijednost je uvijek za 1 manja od zadane vrijednosti, tj. zaustavljanje-1.
for i in range(10): print(i, end =" ")
Izlaz:
0 1 2 3 4 5 6 7 8 9
Koriลกtenje poฤetka i zaustavljanja u rasponu ()
U kodu je poฤetna vrijednost 3, a krajnja vrijednost 10. Ovdje je poฤetni indeks 3, pa ฤe niz brojeva poฤeti od 3 do krajnje vrijednosti. Posljednja vrijednost u nizu bit ฤe za 1 manja od krajnje vrijednosti, 10-1 = 9.
for i in range(3, 10): print(i, end =" ")
Izlaz:
3 4 5 6 7 8 9
Koriลกtenje start, stop i step
Poฤetna vrijednost je 3, pa ฤe niz brojeva zapoฤeti od 3. Zavrลกna vrijednost je 10, pa ฤe niz brojeva zavrลกiti na (10-1), tj. 9. Korak je 2, pa ฤe se svaka vrijednost u nizu poveฤati za 2. Ako vrijednost koraka nije navedena, vrijednost za korak je zadana 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 poveฤanu vrijednost za zadanu vrijednost zaustavljanja. Pokuลกajmo sada primjerom dobiti smanjenu vrijednost u zadanom rasponu.
Poveฤanje vrijednosti u rasponu koriลกtenjem pozitivnog koraka
Parametar step u range() moลพe se koristiti za poveฤanje ili smanjenje vrijednosti. Prema zadanim postavkama, to je pozitivna vrijednost, 1. Dakle, uvijek ฤe davati poveฤane vrijednosti.
Vrijednost koraka mora biti pozitivna ako ลพelite inkrementirane vrijednosti kao izlaz.
for i in range(1, 30, 5): print(i, end =" ")
Izlaz:
1 6 11 16 21 26
Reverse Raspon: Smanjenje vrijednosti negativnim korakom
Parametar step s negativnom vrijednoลกฤu u range() moลพe se koristiti za dobivanje smanjenih vrijednosti. U donjem primjeru, vrijednost stepa je negativna, pa ฤ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, krajnja vrijednost je 5, a vrijednost koraka je negativni broj, tj. -1. S gore navedenim ulazima, funkcija range() ฤe smanjivati โโvrijednost od 15 nadalje dok ne dosegne krajnju vrijednost, ali ovdje je razlika u tome ลกto ฤe posljednja vrijednost biti krajnja vrijednost + 1.
Koriลกtenje plutajuฤih brojeva u Python raspon()
Poradimo sada na range() koristeฤi brojeve s pomiฤnim zarezom.
Primjer:
for i in range(10.5): print(i, end =" ")
U gornjem primjeru koristili smo stop vrijednost od 10.5.
Izlaz je:
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 vraฤa greลกku jer funkcija range() ne podrลพava brojeve s pomiฤnim zarezom za poฤetak, kraj i korak.
Koriลกtenje for-petlje sa Python raspon()
U ovom primjeru koristit ฤemo niz brojeva i vidjeti kako iterirati niz unutar for petlje koristeฤi range().
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 zavrลกnu vrijednost. Petlja for ฤe iterirati do zavrลกne vrijednosti, tj. duljine niza, koja ฤe biti 4, buduฤi da imamo ฤetiri stavke u arr_list. Poฤetna vrijednost bit ฤe 0, a korak 1, pa ฤe vrijednosti poฤeti od 0 i zaustaviti se na 3, tj. duljina niza -1, ลกto znaฤi 4 -1 = 3.
Koriลกtenje Python range() kao popis
U ovom primjeru ฤemo vidjeti 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 ponavljati range() i pomoฤu metode list() mogli smo izravno pretvoriti izlaz iz raspona u format popisa.
Koriลกtenje znakova u python range()
Do sada smo koristili cijele brojeve u python range(). Takoฤer smo vidjeli da brojevi s pomiฤnim zarezom nisu podrลพani u rasponu pythona. Pokuลกajmo vidjeti rezultat ลก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, in <module>
for c in range ('z'):
TypeError: 'str' object cannot be interpreted as an integer
Izbacuje pogreลกku govoreฤi da se niz ne moลพe interpretirati kao cijeli broj.
Da biste dobili popis abeceda, moลพete prilagoditi kod i dobiti ลพeljene rezultate prikazane u nastavku:
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-petlju za dobivanje vrijednosti iz raspona ili koristiti indeks za pristup elementima iz raspona().
Koriลกtenje for-petlje
Primjer:
for i in range(6):
print(i)
Izlaz:
0 1 2 3 4 5
Koriลกtenje indeksa
Indeks se koristi s rasponom kako bi se dobila vrijednost dostupna na toj poziciji. Ako je vrijednost raspona 5, da biste dobili poฤetnu vrijednost, moลพete koristiti range(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:
The first element in range is = 0 The second element in range is = 1 The first element in range is = 4
Koriลกtenje liste()
Ova metoda ฤe ispisati sve elemente iz range(). Koriลกtenjem list() vratit ฤe elemente iz range() u formatu liste.
Primjer:
print(list(range(10)))
Izlaz:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Daje izlaz popisa za zadani raspon.
Primjer: Dohvatite parne brojeve pomoฤu range()
Koriลกtenjem funkcije range() dobit ฤete popis parnih brojeva u rasponu zadanom kao ulaz. Parametri za range() su: start je 2, stop je 20, a step 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 dva-range() izlaza
U ovom primjeru, spojit ฤemo 2 funkcije range() uz pomoฤ funkcije chain() modula itertools.
Primjer:
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=" ")
Izlaz:
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
Koriลกtenje range() s NumPy
NumPy modul ima funkciju arange() koja radi i daje sliฤan izlaz kao range(). Funkcija arange() prima iste parametre kao i range().
Sintaksa:
arange(start, stop, step)
Za rad s NumPy-jem, slijedite dolje navedene korake.
Korak 1: Uvoz NumPy modula
import numpy
U sluฤaju da se tijekom izvrลกavanja pojavi greลกka u kojoj se kaลพe da numpy modul nije pronaฤen, potrebno je instalirati modul kao ลกto je prikazano u koraku 2.
Korak 2Instalirajte NumPy
pip install numpy
Korak 3: Radni primjer arange() koristeฤi NumPy
import numpy as np for i in np.arange(10): print(i, end =" ")
Izlaz:
0 1 2 3 4 5 6 7 8 9
Brojevi s pomiฤnim zarezom koristeฤi NumPy arange()
Nije moguฤe dobiti niz s pomiฤnim zarezom pomoฤu range(), ali je moguฤe pomoฤu NumPy arange().
Primjer:
ลฝeljeni raspon je od 0.5 do 1.5. Vrijednost ฤe se poveฤavati za 0.2.
import numpy as np for i in np.arange(0.5, 1.5, 0.2): print(i, end =" ")
Izlaz:
0.5 0.7 0.8999999999999999 1.0999999999999999 1.2999999999999998
Izlaz koji dobivamo je malo ฤudan; neki od brojeva s pomiฤnim zarezom prikazani su sa 16 decimalnih mjesta. To se dogaฤa zbog sloลพenosti pohranjivanja decimalnih brojeva s pomiฤnim zarezom u binarnom formatu. Takoฤer moลพete zaokruลพiti vrijednosti ako je potrebno i ograniฤiti ih na potreban broj decimala.
