Python range() Funktio: Float, List, For loop Esimerkkejä

Mikä on Python Alue?

Python range() on sisäänrakennettu toiminto, joka on saatavana Python alkaen Python(3.x), ja se antaa numerosarjan annettujen aloitus- ja lopetusindeksien perusteella. Jos aloitusindeksiä ei anneta, indeksin katsotaan olevan 0, ja se kasvattaa arvoa 1:llä lopetusindeksiin asti.

Esimerkiksi range(5) tulostaa sinulle arvot 0,1,2,3,4 .The Python range() on erittäin hyödyllinen komento, ja sitä käytetään enimmäkseen, kun sinun on iteroitava for-silmukalla.

Syntaksi

range(start, stop, step)

parametrit

  • alkaa: (valinnainen) Alkuindeksi on kokonaisluku, ja jos sitä ei ole annettu, oletusarvo on 0.
  • Stop: Pysäytysindeksi määrittää arvon, johon aluefunktion on pysähdyttävä. Se on pakollinen syöte aluefunktioon. Viimeinen arvo on aina 1 pienempi kuin pysäytysarvo.
  • vaihe: (valinnainen). Askelarvo on numero, jolla seuraavaa alueen lukua on lisättävä, oletusarvoisesti se on 1.

Palautusarvo

Paluuarvo on numerosarja annetusta alusta lopetusindeksistä.

Python range() Funktio ja historia

Python range() on otettu käyttöön python-versiosta 3, ennen sitä xrange() oli funktio.

Sekä aluetta että xrange():ta käytetään numerosarjan tuottamiseen.

Seuraavassa on ero rangen ja xrange() välillä:

alue () xrange()
Alue() antaa numerosarjan ja palauttaa numeroluettelon. Funktio xrange() antaa generaattoriobjektin, joka on silmukattava for-silmukassa arvojen saamiseksi.
Range() palauttaa luettelon. xrange() palauttaa generaattoriobjektin.
Range()-menetelmä käyttää enemmän muistia, koska palautettu lista on tallennettava verrattuna xrange()-menetelmään. Koska xrange() palauttaa generaattoriobjektin, se ei anna arvoja välittömästi ja sitä on käytettävä for-silmukassa arvojen saamiseksi.
Muistin käyttö on enemmän, joten koodin suoritus on hidasta, kun työskentelet valtavan datajoukon parissa. Koodin suoritus on nopeampaa käyttämällä xrange().

Käytä range()

Tämä esimerkki näyttää, kuinka arvot väliltä 0-9 tulostetaan käyttämällä range().

Alueella käytetty arvo on 10, joten lähtö on 0 1 2 3 4 5 6 7 8 9

Koska aloitusta ei anneta, aloitus on 0 ja viimeinen arvo annetaan 9 asti. Viimeinen arvo on aina 1 pienempi kuin annettu arvo eli stop-1.

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

lähtö:

0 1 2 3 4 5 6 7 8 9

Käytetään aloitus- ja lopetusalue()

Koodissa aloitusarvo on 3 ja lopetusarvo on 10. Tässä aloitusindeksi on 3, joten numerosarja alkaa 3:sta lopetusarvoon. Sarjan viimeinen arvo on 1 pienempi kuin pysäytysarvo 10-1 = 9.

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

lähtö:

3 4 5 6 7 8 9

Käytetään käynnistystä, pysäytystä ja askelta

Alkuarvo on 3, joten numerosarja alkaa numerosta 3. Lopetusarvo on 10, joten numerosarja pysähtyy kohtaan (10-1) eli 9. Vaihe on 2, joten sarjan jokainen arvo lisätään 2:lla. Jos askelarvoa ei anneta, askeleen arvo on oletusarvo 1.

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

lähtö:

3 5 7 9

Tähän mennessä olemme nähneet kuinka range()-funktio antaa lisätyn arvon annetulle stop-arvolle. Kokeillaan nyt esimerkkiä saadaksesi pienennetty arvo annetulla alueella.

Arvojen kasvattaminen alueella positiivisella askeleella.

Parametriaskel range():ssä voidaan lisätä/vähentää arvoja. Oletuksena se on positiivinen arvo 1. Joten se antaa aina lisättyjä arvoja.

Askelarvon on oltava positiivinen, jos haluat lisätä arvoja tulosteena.

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

lähtö:

1 6 11 16 21 26

Reverse Range: Arvojen vähentäminen negatiivisella askeleella

Parametriaskelta negatiivisella arvolla alueella() voidaan käyttää pienennettyjen arvojen saamiseksi. Alla olevassa esimerkissä askelarvo on negatiivinen, joten lähtöä pienennetään annetusta alueen arvosta.

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

lähtö:

15 14 13 12 11 10 9 8 7 6

Aloitusarvo on 15, lopetusarvo on 5 ja askelarvo on negatiivinen luku eli -1. Yllä olevilla syötteillä range()-funktio pienentää arvoa 15:stä eteenpäin, kunnes se saavuttaa pysäytysarvon, mutta tässä ero on viimeinen arvo stop + 1.

Käytä kelluvia lukuja Python alue ()

Tehdään nyt työtä range() kanssa liukulukujen avulla.

Esimerkiksi:

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

Yllä olevassa esimerkissä olemme käyttäneet pysäytysarvoa 10.5.

Lähtö on:

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 antaa virheen, koska range()-funktio ei tue liukulukuja aloitukselle, lopetukselle ja askeleelle.

For-silmukan käyttäminen kanssa Python alue ()

Tässä esimerkissä käytämme lukujonoa ja katsotaan kuinka käyttää taulukon iterointia for-silmukan sisällä käyttämällä range()

Esimerkiksi:

arr_list = ['Mysql', 'Mongodb', 'PostgreSQL', 'Firebase']

for i in range(len(arr_list)):
    print(arr_list[i], end =" ")

lähtö:

MysqlMongodb PostgreSQL Firebase

Yllä olevassa esimerkissä olemme käyttäneet len(arr_list) stop-arvona. For-silmukka toistuu stop-arvoon eli taulukon pituuteen asti ja se on 4, koska arr_listissa on neljä kohdetta. Alkuarvo on 0 ja askel on 1. Joten arvot alkavat 0:sta ja päättyvät 3:een eli taulukon pituuteen -1 eli 4 -1 = 3.

Käyttäminen Python range() luettelona

Tässä esimerkissä nähdään, kuinka alueen tulostetta käytetään luettelona.

Esimerkiksi:

print(list(range(10)))

lähtö:

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

Näet, että tulos on luettelomuodossa. Range()-silmukkaa ei tarvinnut ja käyttämällä list()-menetelmää pystyimme muuttamaan tulosteen suoraan alueesta listamuotoon.

Python range() -merkkien käyttäminen

Toistaiseksi olemme käyttäneet kokonaislukuja python range(). Olemme myös nähneet, että liukulukuja ei tueta python-alueella. Yritetään nähdä tulos siitä, mitä tapahtuu, kun käytämme merkkejä.

Esimerkiksi:

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

lähtö:

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

Se antaa virheilmoituksen, jonka mukaan merkkijonoa ei voida tulkita kokonaislukuna.

Saadaksesi luettelon aakkosista voit mukauttaa koodia ja saada haluamasi tulosteet alla olevan kuvan mukaisesti:

Esimerkiksi:

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

lähtö:

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

Kuinka käyttää Range Elements

Voit käyttää for-silmukkaa saadaksesi arvot alueelta tai käyttää indeksiä päästäksesi elementit alueesta().

For-silmukan käyttö

Esimerkiksi:

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

lähtö:

0
1
2
3
4
5

Indeksin käyttö

Indeksiä käytetään alueen kanssa saadakseen kyseisessä paikassa käytettävissä olevan arvon. Jos alueen arvo on 5, voit saada aloitusarvon käyttämällä alue(5)[0] ja seuraavaa arvoaluetta(5)[1] ja niin edelleen.

Esimerkiksi:

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)

lähtö:

The first element in range is =  0
The second element in range is =  1
The first element in range is =  4

Listan() käyttö

Tämä menetelmä tulostaa kaikki elementit alueesta(). List():n avulla se palauttaa elementit alueesta() listamuodossa.

Esimerkiksi:

print(list(range(10)))

lähtö:

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

Se antaa luettelotulosteen annetulle alueelle.

Esimerkki: Hanki parilliset luvut käyttämällä range()

Range()-komennolla saadaan lista parillisista luvuista syötteenä annetulla alueella. Range()-parametrit ovat: start on 2, stop on 20 ja step on 2, joten arvoja kasvatetaan 2:lla ja ne antavat parillisia numeroita stop-2:een asti.

Esimerkiksi:

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

lähtö:

2 4 6 8 10 12 14 16 18

Kahden alueen()-ulostulojen yhdistäminen

Tässä esimerkissä ketjuttaa 2 range()-funktiota itertools module chain()-funktion avulla.

Esimerkiksi:

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

lähtö:

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

Käytä range() NumPy:n kanssa

NumPy-moduulissa on arange()-funktio, joka toimii ja antaa samanlaisen tulosteen kuin range(). Arrange() ottaa samat parametrit kuin range().

Syntaksi:

arange(start, stop, step)

Työskentele NumPyn kanssa noudattamalla alla olevia ohjeita.

Vaihe 1: Tuo NumPy-moduuli

import numpy

Jos suorituksen aikana tulee virheilmoitus, jossa sanotaan, että numpy-moduulia ei löydy, sinun on asennettava moduuli vaiheessa 2 esitetyllä tavalla.

Vaihe 2: Asenna NumPy

pip install numpy

Vaihe 3: Toimiva esimerkki arange():sta NumPy:n avulla

import numpy as np 

for  i in np.arange(10):
   print(i, end =" ")        

lähtö:

0 1 2 3 4 5 6 7 8 9

Liukulukuluvut käyttämällä NumPy arange()

Liukulukujonoa ei voi saada käyttämällä range()-komentoa, mutta se on mahdollista NumPy arange(:lla).

Esimerkiksi:

Haluamamme alue on 0.5 - 1.5. Arvo kasvaa 0.2:lla.

import numpy as np 

for  i in np.arange(0.5, 1.5, 0.2):
   print(i, end =" ")        

lähtö:

0.5 0.7 0.8999999999999999 1.0999999999999999 1.2999999999999998

Saamamme tulos on hieman outo, jotkut float-luvut näytetään 16 desimaalin tarkkuudella. Tämä johtuu siitä, että desimaalilukujen tallentaminen binäärimuotoon on monimutkaista. Voit myös pyöristää arvot tarvittaessa ja rajoittaa ne tarvittaviin desimaaleihin.

Yhteenveto

  • Python range() on sisäänrakennettu toiminto, joka on saatavana Python alkaen Python(3.x), ja se antaa numerosarjan annettujen aloitus- ja lopetusindeksien perusteella. Jos aloitusindeksiä ei anneta, indeksin katsotaan olevan 0, ja se kasvattaa arvoa lopetusindeksiin asti.
  • Python range() on otettu käyttöön alkaen Python versio 3, ennen sitä xrange() oli funktio.
  • Alue() antaa numerosarjan ja palauttaa numeroluettelon. Funktio xrange() antaa generaattoriobjektin, joka on silmukattava for-silmukassa arvojen saamiseksi.
  • Parametriaskel range():ssä voidaan lisätä/vähentää arvoja. Oletuksena se on positiivinen arvo 1. Joten se antaa aina lisättyjä arvoja.
  • Python antaa virheen liukulukuille, koska range()-funktio tukee vain kokonaislukuarvoja.
  • Alue()-arvoihin pääsee käsiksi käyttämällä for-loop-komentoa, käyttämällä indeksiä ja list()
  • NumPy-moduulissa on arange()-funktio, joka toimii ja antaa samanlaisen tulosteen kuin range(). Arange() ottaa samat parametrit kuin range().
  • On mahdollista saada liukulukusekvenssi NumPy arange(), jota ei tueta range()-toiminnolla.

Päivittäinen Guru99-uutiskirje

Aloita päiväsi uusimmilla ja tärkeimmillä tekoälyuutisilla, jotka toimitetaan juuri nyt.