Python Rang() Funkcija: Float, List, Primjeri petlje For

ล 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 vam dati vrijednosti 0,1,2,3,4 Python range() je vrlo korisna naredba i uglavnom se koristi kada morate ponavljati koristeฤ‡i for petlju.

Sintaksa

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 obavezan unos za funkciju raspona. Zadnja vrijednost ฤ‡e uvijek biti 1 manja od graniฤne vrijednosti.
  • 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() uveden je iz verzije 3 pythona, prije toga xrange() je bila funkcija.

I raspon i xrange() koriste se za proizvodnju niza brojeva.

Slijede razlike izmeฤ‘u raspona 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 da bi se dobile vrijednosti.
Koriลกtenje memorije je veฤ‡e, stoga je izvrลกavanje koda sporije kada se radi na velikom skupu 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 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 je dana do 9. Zadnja vrijednost je uvijek 1 manja od dane 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 poฤetka i zaustavljanja u rasponu ()

U kodu, poฤetna vrijednost je 3, a krajnja vrijednost je 10. Ovdje je poฤetni indeks 3, tako da ฤ‡e niz brojeva zapoฤeti od 3 do krajnje 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

Koriลกtenje start, stop i step

Poฤetna vrijednost je 3, tako da ฤ‡e niz brojeva zapoฤeti na 3. Zavrลกna vrijednost je 10, tako da ฤ‡e niz brojeva zavrลกiti na (10-1), tj. 9. Korak je 2, tako da ฤ‡e svaka vrijednost u nizu poveฤ‡ati za 2. Ako vrijednost koraka nije navedena, vrijednost za korak je zadana 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 danu zaustavnu vrijednost. Pokuลกajmo sada s primjerom dobiti smanjenu vrijednost u danom rasponu.

Poveฤ‡anje 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 u sluฤaju da ลพelite poveฤ‡anje vrijednosti kao izlaz.

for i in range(1, 30, 5):
    print(i, end =" ")

Izlaz:

1 6 11 16 21 26

Reverse Raspon: Smanjenje vrijednosti pomoฤ‡u negativnog koraka

Korak parametra s negativnom vrijednoลกฤ‡u u rasponu() moลพe se koristiti za dobivanje dekrementiranih vrijednosti. U donjem primjeru vrijednost koraka je negativna tako da ฤ‡e izlaz biti dekrementiran od dane 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, zavrลกna vrijednost je 5, a vrijednost koraka je negativan broj, tj. -1. S gornjim unosima funkcija range() smanjit ฤ‡e vrijednost od 15 na dalje dok ne dosegne zaustavnu vrijednost, ali ovdje je razlika u tome ลกto ฤ‡e zadnja vrijednost biti stop + 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 graniฤnu vrijednost kao 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 daje pogreลกku jer funkcija range() ne podrลพava brojeve s pomiฤnim zarezom za poฤetak, zaustavljanje i korak.

Koriลกtenje for-petlje sa Python raspon()

U ovom primjeru koristit ฤ‡emo niz brojeva i pogledajmo kako koristiti iteraciju niza 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 zaustavnu vrijednost. Petlja for ฤ‡e ponavljati do zaustavne vrijednosti, tj. duljine niza i to ฤ‡e biti 4, jer imamo ฤetiri stavke u arr_list. Poฤetna vrijednost bit ฤ‡e 0, a korak ฤ‡e biti 1. Dakle, vrijednosti ฤ‡e poฤeti od 0 i zaustavit ฤ‡e se na 3, tj. duljini 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ลกtenje range() ฤ‡e dobiti popis parnih brojeva u rasponu danom kao ulaz. Parametri za range() su, start je 2, stop je 20, a step je 2, tako da ฤ‡e se vrijednosti poveฤ‡ati 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 ฤ‡e se primjeru spojiti 2 funkcije range() uz pomoฤ‡ funkcije itertools modula chain().

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

Modul NumPy ima funkciju arange() koja radi i daje sliฤan izlaz kao range(). Arrange() uzima iste parametre kao range().

Sintaksa:

arange(start, stop, step)

Za rad s NumPyjem slijedite dolje navedene korake.

Korak 1: Uvoz NumPy modula

import numpy

U sluฤaju da se tijekom izvoฤ‘enja pojavi pogreลกka koja kaลพe da numpy modul nije pronaฤ‘en, morate instalirati modul kao ลกto je prikazano u koraku 2.

Korak 2: Instalirajte 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 slijed s pomiฤnim zarezom pomoฤ‡u range(), 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 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 pomiฤnih 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.

Rezime

  • 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 do indeksa zaustavljanja.
  • Python range() je uveden iz python verzija 3, prije toga xrange() je bila funkcija.
  • 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.
  • 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ฤnim 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()
  • Modul NumPy ima funkciju arange() koja radi i daje sliฤan izlaz kao range(). arange() uzima iste parametre kao range().
  • Moguฤ‡e je dobiti slijed s pomiฤnim zarezom NumPy arange() koji nije podrลพan koriลกtenjem range().

Saลพmite ovu objavu uz: