Obseg Pythona () Funkcija: Float, List, For zanke Primeri

Kazalo:

Anonim

Kaj je Python Range?

Obseg Python () je vgrajena funkcija, ki je na voljo s Pythonom iz Pythona (3.x), in daje zaporedje številk na podlagi podanega začetnega in končnega indeksa. Če začetni indeks ni podan, se indeks šteje za 0 in bo vrednost povečal za 1 do indeksa zaustavitve.

Na primer obseg (5) bo prikazal vrednosti 0,1,2,3,4. Obseg Python () je zelo uporaben ukaz in se večinoma uporablja, kadar morate iterirati z zanko for.

V tej vadnici boste izvedeli:

  • Kaj je Python Range?
  • Sintaksa
  • Obseg Pythona () Funkcija in zgodovina
  • Uporaba obsega ()
  • Uporaba zagona in konca v dosegu ()
  • Uporaba start, stop in step
  • Povečanje vrednosti v območju s pozitivnim korakom.
  • Povratni obseg: zmanjševanje vrednosti z negativnim korakom.
  • Uporaba plavajočih števil v območju Python ()
  • Uporaba for-loop z obsegom Python ()
  • Uporaba obsega Python () kot seznama
  • Uporaba znakov v območju python ()
  • Kako dostopati do elementov obsega
  • Primer: pridobite parne številke z uporabo range ()
  • Združevanje dvoobsežnih izhodov
  • Uporaba obsega () z NumPy

Sintaksa

range(start, stop, step)

Parametri

  • start: (neobvezno) Začetni indeks je celo število in če ni podan, je privzeta vrednost 0.
  • stop: indeks zaustavitve določa vrednost, pri kateri se mora funkcija obsega ustaviti. To je obvezen vnos za funkcijo obsega. Zadnja vrednost bo vedno za 1 manjša od vrednosti zaustavitve.
  • korak: (neobvezno). Vrednost koraka je številka, s katero je treba povečati naslednjo številko, privzeto je 1.

Vrnjena vrednost:

Vrnjena vrednost je zaporedje števil od danega indeksa začetka do zaustavitve.

Obseg Pythona () Funkcija in zgodovina

Obseg Python () je bil uveden iz python različice 3, preden je bila funkcija xrange ().

Za ustvarjanje zaporedja števil se uporabljata obseg in xrange ().

Sledi razlika med obsegom in xrange ():

obseg () xrange ()
Območje () poda zaporedje številk in vrne seznam številk. Funkcija xrange () daje objekt generatorja, ki ga je treba zanko zaokrožiti, da dobi vrednosti.
Obseg () vrne seznam. xrange () vrne objekt generatorja.
Metoda range () porabi več pomnilnika, saj je treba vrnjeni seznam shraniti v primerjavi z xrange (). Ker xrange () vrne objekt generatorja, vrednosti ne da takoj in ga je treba uporabiti znotraj zanke for, da dobi vrednosti.
Uporaba pomnilnika je bolj velika, zato je izvajanje kode počasno pri delu z ogromnim naborom podatkov. Izvajanje kode je hitrejše z uporabo xrange ().

Uporaba obsega ()

Ta primer prikazuje, kako natisniti vrednosti od 0 do 9 z uporabo obsega ().

Vrednost, uporabljena v območju, je 10, tako da je izhod 0 1 2 3 4 5 6 7 8 9

Ker začetek ni podan, se šteje, da je začetek 0, zadnja vrednost pa do 9. Zadnja vrednost je vedno 1 manjša od dane vrednosti, tj. Stop-1.

for i in range(10):print(i, end =" ")

Izhod:

0 1 2 3 4 5 6 7 8 9

Uporaba zagona in konca v dosegu ()

V kodi je začetna vrednost 3, zaustavitev pa 10. Tu je začetni indeks 3, zato se zaporedje števil začne od 3 do končne vrednosti. Zadnja vrednost v zaporedju bo za 1 manjša od vrednosti zaustavitve 10-1 = 9.

for i in range(3, 10):print(i, end =" ")

Izhod:

3 4 5 6 7 8 9

Uporaba start, stop in step

Začetna vrednost je 3, zato se zaporedje števil začne na 3. Stopnja vrednosti je 10, zato se zaporedje številk ustavi pri (10-1), tj. 9. Korak je 2, zato bo vsaka vrednost v zaporedju se poveča za 2. Če vrednost koraka ni podana, je vrednost za korak privzeto 1.

for i in range(3, 10, 2):print(i, end =" ")

Izhod:

3 5 7 9

Do zdaj smo videli, kako funkcija range () daje povečano vrednost za navedeno zaustavitveno vrednost. Poskusimo zdaj na primeru, da dobimo zmanjšano vrednost v podanem obsegu.

Povečanje vrednosti v območju s pozitivnim korakom.

Korak parametra v območju () lahko uporabite za povečanje / zmanjšanje vrednosti. Privzeto je pozitivna vrednost 1. Torej bo vedno dala povečane vrednosti.

Vrednost koraka mora biti pozitivna, če želite, da povečane vrednosti izstopajo.

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

Izhod:

1 6 11 16 21 26

Povratni obseg: zmanjševanje vrednosti z negativnim korakom.

Korak parametrov z negativno vrednostjo v območju () je mogoče uporabiti za zmanjšanje vrednosti. V spodnjem primeru je vrednost koraka negativna, zato bo izhod zmanjšan od podane vrednosti obsega.

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

Izhod:

15 14 13 12 11 10 9 8 7 6

Začetna vrednost je 15, zaustavitev je 5, vrednost koraka pa je negativno število, tj. -1. Z zgornjimi vhodi bo funkcija range () vrednost zniževala od 15 naprej, dokler ne doseže vrednosti zaustavitve, vendar je tu razlika zadnja vrednost stop + 1.

Uporaba plavajočih števil v območju Python ()

Delajmo zdaj na območju () z uporabo števil s plavajočo vejico.

Primer:

for i in range(10.5):print(i, end =" ")

V zgornjem primeru smo uporabili zaustavitveno vrednost kot 10,5.

Rezultat 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 prikaže napako, saj funkcija range () ne podpira številk s plavajočo vejico za začetek, zaustavitev in korak.

Uporaba for-loop z obsegom Python ()

V tem primeru bomo uporabili matriko števil in poglejmo, kako uporabimo iteracijo matrike znotraj zanke for z uporabo range ()

Primer:

arr_list = ['Mysql', 'Mongodb', 'PostgreSQL', 'Firebase']for i in range(len(arr_list)):print(arr_list[i], end =" ")

Izhod:

MysqlMongodb PostgreSQL Firebase

V zgornjem primeru smo kot stop vrednost uporabili len (arr_list). Zanka for se bo ponovila do vrednosti zaustavitve, tj. Dolžine polja in to bo 4, saj imamo na arr_listu štiri elemente. Začetna vrednost bo 0, korak pa 1. Torej vrednosti se bodo začele od 0 in se bodo ustavile na 3, tj. Dolžina polja -1, kar pomeni 4 -1 = 3.

Uporaba obsega Python () kot seznama

V tem primeru bomo videli, kako izhod iz obsega uporabimo kot seznam.

Primer:

print(list(range(10)))

Izhod:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Vidite, da je rezultat v obliki seznama. Ni bilo treba zanke obsega () in z uporabo metode list () lahko neposredno pretvoriti izhod iz obsega v obliko seznama.

Uporaba znakov v območju python ()

Do zdaj smo v območju python () uporabljali cela števila. Opazili smo tudi, da številke s plavajočo vejico niso podprte v območju python. Poskusimo videti, kaj se zgodi, ko uporabimo znake.

Primer:

for c in range ('z'):print(c, end =" ")

Izhod:

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

Prikaže napako, saj niza ni mogoče razlagati kot celo število.

Če želite dobiti seznam abeced, lahko prilagodite kodo in dobite želene rezultate, prikazane spodaj:

Primer:

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

Izhod:

['a', 'b', 'c', 'd', 'e', 'f', 'g']

Kako dostopati do elementov obsega

Lahko uporabite for-zanko za pridobivanje vrednosti iz obsega ali indeks za dostop do elementov iz obsega ().

Uporaba for-loop

Primer:

for i in range(6):print(i)

Izhod:

012345

Uporaba indeksa

Indeks se uporablja z obsegom, da dobi vrednost, ki je na voljo na tem mestu. Če je vrednost obsega 5, lahko za pridobitev začetne vrednosti uporabite obseg (5) [0] in naslednji obseg vrednosti (5) [1] itd.

Primer:

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)

Izhod:

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)

Uporaba seznama ()

Ta metoda bo natisnila vse elemente iz obsega (). Z uporabo seznama () bo vrnil elemente iz obsega () v obliki seznama.

Primer:

print(list(range(10)))

Izhod:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Daje izpise seznama za dani obseg.

Primer: pridobite parne številke z uporabo range ()

Z uporabo range () boste dobili seznam parnih števil v obsegu, podanem kot vhod. Parametri za range () so, start je 2, stop je 20 in korak 2, zato se bodo vrednosti povečale za 2 in bodo podale soda števila do stop-2.

Primer:

for i in range(2, 20, 2):print(i, end =" ")

Izhod:

2 4 6 8 10 12 14 16 18

Združevanje dvoobsežnih izhodov

V tem primeru bo združil 2 funkciji obsega () s pomočjo funkcije verige modulov itertools ().

Primer:

from itertools import chainprint("Merging two range into one")frange =chain(range(10), range(10, 20, 1))for i in frange:print(i, end=" ")

Izhod:

Merging two range into one0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

Uporaba obsega () z NumPy

Modul NumPy ima funkcijo arange (), ki deluje in daje podobne rezultate, kot je range (). Urejanje () ima enake parametre, kot je obseg ().

Sintaksa:

arange(start, stop, step)

Če želite delati z NumPy, sledite spodnjim korakom.

1. korak : Uvozite modul NumPy

import numpy

Če med izvajanjem pride do napake, ker modula numpy ni mogoče najti, morate modul namestiti, kot je prikazano v 2. koraku.

2. korak : Namestite NumPy

pip install numpy

3. korak : Delovni primer arange () z uporabo NumPy

import numpy as npfor i in np.arange(10):print(i, end =" ")

Izhod:

0 1 2 3 4 5 6 7 8 9

Števila s plavajočo vejico z uporabo NumPy arange ()

Zaporedja s plavajočo vejico ni mogoče dobiti z uporabo obsega (), vendar je mogoče z uporabo NumPy arange ().

Primer:

Območje, ki ga želimo, je od 0,5 do 1,5. Vrednost se bo povečala za 0,2.

import numpy as npfor i in np.arange(0.5, 1.5, 0.2):print(i, end =" ")

Izhod:

0.5 0.7 0.8999999999999999 1.0999999999999999 1.2999999999999998

Rezultat, ki ga dobimo, je nekoliko čuden, nekatera števila float so prikazana s 16 decimalnimi mesti. To se zgodi zaradi zapletenosti shranjevanja decimalnih plavajočih števil v binarni obliki. Vrednosti lahko po potrebi tudi zaokrožite in jih omejite na decimalna mesta, ki jih potrebujete.

Povzetek:

  • Obseg Python () je vgrajena funkcija, ki je na voljo s Pythonom iz Pythona (3.x), in daje zaporedje številk na podlagi podanega začetnega in končnega indeksa. Če začetni indeks ni podan, se indeks šteje za 0 in bo vrednost povečeval do indeksa zaustavitve.
  • Obseg Python () je bil uveden iz python različice 3, preden je bila funkcija xrange ().
  • Območje () poda zaporedje številk in vrne seznam številk. Funkcija xrange () daje objekt generatorja, ki ga je treba zanko zaokrožiti, da dobi vrednosti.
  • Korak parametra v območju () lahko uporabite za povečanje / zmanjšanje vrednosti. Privzeto je pozitivna vrednost 1. Torej bo vedno dala povečane vrednosti.
  • Python daje napako za številke s plavajočo vejico, saj funkcija range () podpira samo celoštevilske vrednosti.
  • Do vrednosti iz obsega () je mogoče dostopati s pomočjo zanke for, z uporabo indeksa in seznama ()
  • Modul NumPy ima funkcijo arange (), ki deluje in daje podobne rezultate, kot je range (). Arange () ima enake parametre kot range ().
  • Z obsegom () lahko dobite zaporedje s plavajočo vejico NumPy arange (), ki ni podprto.