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.
