Python raspon () Funkcija: plutajući, popis, Primjeri petlje

Sadržaj:

Anonim

Š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, in 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č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, in for 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.