Python range() Funktio: Float, List, For loop Esimerkkejä
⚡ Älykäs yhteenveto
Python range() on sisäänrakennettu funktio, joka luo muuttumattoman kokonaislukujonon aloitusarvosta lopetusarvoon asti, mutta sitä lukuun ottamatta, käyttäen valinnaista askelta lisäyksen ohjaamiseen.

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) antaa tulokseksi arvot 0, 1, 2, 3 ja 4. The Python range() on erittäin hyödyllinen komento ja sitä käytetään enimmäkseen silloin, kun sinun on iteroitava käyttämällä silmukalle.
Syntaksi
range()-funktion syntaksi on esitetty alla:
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 range-funktion on pysähdyttävä. Se on pakollinen syöte range-funktiolle. Viimeinen arvo on aina 1 pienempi kuin pysäytysarvo.
- vaihe: (valinnainen) Askeleen arvo on luku, jolla seuraavaa alueen lukua on kasvatettava; oletusarvoisesti se on 1.
Palautusarvo
Paluuarvo on numerosarja annetusta alusta lopetusindeksistä.
Python range() Funktio ja historia
Python range() on otettu käyttöön alkaen Python versio 3; ennen sitä funktiona käytettiin xrange().
Sekä range()- että xrange()-funktioita käytetään numerosarjan luomiseen.
Seuraavat ovat range():n ja xrange():n väliset erot:
| 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-silmukan sisällä arvojen saamiseksi. |
| Muistin käyttö on suurempaa, joten koodin suoritus on hidasta työskenneltäessä valtavan tietomäärän 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 tuloste on 0 1 2 3 4 5 6 7 8 9.
Koska alkua ei ole annettu, alkuarvoksi katsotaan 0 ja viimeinen arvo annetaan lukuun 9 asti. Viimeinen arvo on aina 1 pienempi kuin annettu arvo, eli loppuarvo-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 luvusta 3 lopetusarvoon asti. Sarjan viimeinen arvo on 1 pienempi kuin lopetusarvo, 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
Aloitusarvo on 3, joten numerosarja alkaa luvusta 3. Loppuarvo on 10, joten numerosarja pysähtyy lukuun (10-1) eli lukuun 9. Askel on 2, joten jokaista numerosarjan arvoa kasvatetaan kahdella. Jos askeleen arvoa ei anneta, askeleen arvoksi 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 annetun lopetusarvon kasvatetun arvon. Yritetään nyt esimerkkiä annetun alueen pienennetyn arvon löytämiseksi.
Alueen arvojen kasvattaminen positiivisella askeleella
range()-funktion parametria step voidaan käyttää arvojen kasvattamiseen tai vähentämiseen. Oletusarvoisesti se on positiivinen arvo, 1. Joten se antaa aina kasvavia arvoja.
Askeleen arvon on oltava positiivinen, jos haluat tulosteeksi kasvavia arvoja.
for i in range(1, 30, 5): print(i, end =" ")
lähtö:
1 6 11 16 21 26
Reverse Alue: Arvojen pienentäminen negatiivisella askeleella
Lähtöalueen step-parametria negatiivisella arvolla voidaan käyttää dekrementoitujen arvojen hakemiseen. Alla olevassa esimerkissä askeleen arvo on negatiivinen, joten tuloste dekrementoidaan annetusta aluearvosta.
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 askellusarvo on negatiivinen luku, eli -1. Yllä olevilla syötteillä range()-funktio vähentää arvoa luvusta 15 eteenpäin, kunnes se saavuttaa lopetusarvon, mutta tässä ero on se, että viimeinen arvo on lopetus + 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.
Tuotos 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 aloitus-, lopetus- ja askellusfunktioille.
For-silmukan käyttäminen kanssa Python alue ()
Tässä esimerkissä käytämme lukutaulukkoa ja katsomme, miten taulukkoa iteroidaan for-silmukan sisällä range()-funktion avulla.
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)-funktiota lopetusarvona. For-silmukka iteroi lopetusarvoon eli taulukon pituuteen, joka on 4, koska arr_list-luettelossa on neljä alkiota. Aloitusarvo on 0 ja askel on 1, joten arvot alkavat luvusta 0 ja pysähtyvät lukuun 3, eli taulukon pituus on -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()
Funktion range() käyttäminen hakee syötteenä annetun välin parillisten lukujen listan. Funktion range() parametrit ovat: alkuarvo on 2, loppuarvo on 20 ja askelarvo on 2, joten arvoja kasvatetaan kahdella ja saadaan parillisia lukuja 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ä yhdistämme kaksi range()-funktiota itertools-moduulin 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 orange()-funktio, joka toimii ja antaa samanlaisen tulosteen kuin range(). Orange() ottaa vastaan samat parametrit kuin range().
Syntaksi:
arange(start, stop, step)
Työskennelläksesi NumPyn kanssa, noudata alla olevia ohjeita.
Vaihe 1: Tuo NumPy-moduuli
import numpy
Jos suorituksen aikana saat virheilmoituksen "numin moduulia ei löydy", sinun on asennettava moduuli vaiheessa 2 esitetyllä tavalla.
Vaihe 2Asenna 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 ole mahdollista saada range():llä, mutta se on mahdollista NumPy arange():llä.
Esimerkiksi:
Haluamamme alue on 0.5–1.5. Arvoa kasvatetaan 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 tuloste on hieman outo; jotkut liukulukuluvut näytetään 16 desimaalin tarkkuudella. Tämä johtuu desimaalilukujen tallentamisen monimutkaisuudesta binäärimuodossa. Voit myös pyöristää arvot tarvittaessa ja rajoittaa ne tarvitsemiisi desimaalien tarkkuuteen.
