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().