Mikä on Python Range?
Python-alue () on sisäänrakennettu toiminto, joka on saatavana Pythonin kanssa Pythonilta (3.x), ja se antaa numerosarjan annettujen aloitus- ja lopetusindeksien perusteella. Jos aloitusindeksiä ei anneta, indeksi katsotaan 0: ksi, ja se lisää arvoa 1: llä stop-indeksiin asti.
Esimerkiksi alue (5) antaa sinulle arvot 0,1,2,3,4. Python-alue () on erittäin hyödyllinen komento, jota käytetään enimmäkseen, kun joudut toistamaan silmukan avulla.
Tässä opetusohjelmassa opit:
- Mikä on Python Range?
- Syntaksi
- Python-alue () Toiminto ja historia
- Käyttämällä aluetta ()
- Käynnistä ja pysäytä alueella ()
- Käynnistä, pysäytä ja askel
- Alueella olevien arvojen lisääminen positiivisella askeleella.
- Käänteinen alue: Arvojen pienentäminen negatiivisen vaiheen avulla.
- Kelluvien numeroiden käyttö Python-alueella ()
- For-loopin käyttö Python-alueen kanssa ()
- Python-alueen () käyttäminen luettelona
- Merkkien käyttö python-alueella ()
- Kuinka päästä alue-elementteihin
- Esimerkki: Hae parilliset numerot käyttämällä aluetta ()
- Kahden alueen () lähtöjen yhdistäminen
- Käyttämällä aluetta () NumPyn kanssa
Syntaksi
range(start, stop, step)
Parametrit
- alku: (valinnainen) Aloitusindeksi on kokonaisluku, ja jos sitä ei anneta, oletusarvo on 0.
- stop: Stop-indeksi päättää arvon, jolla aluefunktion on lopetettava. Se on pakollinen syöttö aluefunktiolle. Viimeinen arvo on aina 1 pienempi kuin pysäytysarvo.
- askel: (valinnainen). Vaiheen arvo on numero, jolla seuraavaa lukumäärää on lisättävä. Oletusarvoisesti se on 1.
Palautusarvo:
Palautusarvo on numerosarja annetusta aloitus-lopetus-indeksistä.
Python-alue () Toiminto ja historia
Python-alue () on otettu käyttöön python-versiosta 3, ennen sitä funktio oli xrange ().
Sekä aluetta että xrange (): ta käytetään numerosarjan tuottamiseen.
Seuraavassa on ero alueen ja xrange () välillä:
alue () | xrange () |
Alue () antaa numerosarjan ja palauttaa luettelon numeroista. | Xrange () -funktio antaa generaattoriobjektin, joka on silmukoitava for-loop-arvoon arvojen saamiseksi. |
Alue () palauttaa luettelon. | xrange () palauttaa generaattoriobjektin. |
Alue () -menetelmä käyttää enemmän muistia, koska palautettu luettelo on tallennettava xrange (): een verrattuna. | Kun xrange () palauttaa generaattoriobjektin, se ei anna arvoja heti, ja sitä on käytettävä for-loop-sisällä sisäpuolella arvojen saamiseksi. |
Muistin käyttö on enemmän, joten koodin suorittaminen on hidasta työskenneltäessä valtavan tietojoukon kanssa. | Koodin suorittaminen on nopeampaa käyttämällä xrange (). |
Käyttämällä aluetta ()
Tämä esimerkki osoittaa, kuinka arvojen 0-9 tulostaminen alueella ().
Alueella käytetty arvo on 10, joten lähtö on 0 1 2 3 4 5 6 7 8 9
Koska lähtöä ei anneta, lähtöä pidetään 0: na ja viimeinen arvo annetaan arvoon 9. Viimeinen arvo on aina 1 pienempi kuin annettu arvo eli stop-1.
for i in range(10):print(i, end =" ")
Tuotos:
0 1 2 3 4 5 6 7 8 9
Käynnistä ja pysäytä alueella ()
Koodissa aloitusarvo on 3 ja lopetusarvo on 10. Tässä aloitusindeksi on 3, joten numerosarja alkaa 3: sta stop-arvoon. Sarjan viimeinen arvo on 1 pienempi kuin pysäytysarvo 10-1 = 9.
for i in range(3, 10):print(i, end =" ")
Tuotos:
3 4 5 6 7 8 9
Käynnistä, pysäytä ja askel
Aloitusarvo on 3, joten numerosarja alkaa arvosta 3. Pysäytysarvo on 10, joten numerosarja pysähtyy arvoon (10-1) eli 9. Vaihe on 2, joten kukin sekvenssin arvo on Jos askelarvoa ei anneta, vaiheen arvo on oletusarvoisesti 1.
for i in range(3, 10, 2):print(i, end =" ")
Tuotos:
3 5 7 9
Toistaiseksi olemme nähneet, kuinka alue () -funktio antaa kasvaneen arvon annetulle pysäytysarvolle. Yritetään nyt esimerkkiä, jolla vähennetty arvo saadaan annetulle alueelle.
Alueella olevien arvojen lisääminen positiivisella askeleella.
Alueen () parametrivaihetta voidaan käyttää arvon lisäämiseen / vähentämiseen. Oletusarvoisesti se on positiivinen arvo 1. Joten se antaa aina kasvavia arvoja.
Vaiheen arvon on oltava positiivinen, jos haluat lisätä arvoja ouputina.
for i in range(1, 30, 5):print(i, end =" ")
Tuotos:
1 6 11 16 21 26
Käänteinen alue: Arvojen pienentäminen negatiivisen vaiheen avulla.
Parametrivaihetta negatiivisella arvolla alueella () voidaan käyttää vähentämien arvojen saamiseen. Alla olevassa esimerkissä vaiheen arvo on negatiivinen, joten lähtöä vähennetään annetusta alueen arvosta.
for i in range(15, 5, -1):print(i, end =" ")
Tuotos:
15 14 13 12 11 10 9 8 7 6
Aloitusarvo on 15, pysäytysarvo 5 ja askelarvo on negatiivinen luku eli -1. Yllä olevilla tuloilla alue () -toiminto vähentää arvoa 15: stä eteenpäin, kunnes se saavuttaa pysäytysarvon, mutta tässä ero on, että viimeinen arvo on stop + 1.
Kelluvien numeroiden käyttö Python-alueella ()
Työskentelemme nyt alueella () liukulukujen avulla.
Esimerkki:
for i in range(10.5):print(i, end =" ")
Yllä olevassa esimerkissä olemme käyttäneet pysäytysarvoa arvona 10,5.
Tuotos on:
Traceback (most recent call last):File "python_range.py", line 1, infor i in range(10.5):TypeError: 'float' object cannot be interpreted as an integer
Python antaa virheen, koska alue () -toiminto ei tue liukulukujen alkua, lopetusta ja vaihetta.
For-loopin käyttö Python-alueen kanssa ()
Tässä esimerkissä käytetään joukkoa numeroita ja katsotaan miten iteroidaan taulukko for-loopissa käyttämällä aluetta ()
Esimerkki:
arr_list = ['Mysql', 'Mongodb', 'PostgreSQL', 'Firebase']for i in range(len(arr_list)):print(arr_list[i], end =" ")
Tuotos:
MysqlMongodb PostgreSQL Firebase
Yllä olevassa esimerkissä olemme käyttäneet pysäytysarvona len (arr_list). For -silmukka toistuu pysäytysarvoon eli matriisin pituuteen asti ja se on 4, koska arr_listalla on neljä kohdetta. Aloitusarvo on 0 ja askel on 1. Joten arvot alkavat 0: sta ja pysähtyvät 3: een eli taulukon -1 pituuteen, mikä tarkoittaa 4 -1 = 3.
Python-alueen () käyttäminen luettelona
Tässä esimerkissä nähdään, kuinka alueen ulostuloa voidaan käyttää luettelona.
Esimerkki:
print(list(range(10)))
Tuotos:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Näet, että tulos on luettelomuoto. Alueen () ei tarvinnut silmukata ja käyttämällä list () -menetelmää voisimme suoraan muuntaa lähdön alueelta luettelomuotoon.
Merkkien käyttö python-alueella ()
Toistaiseksi olemme käyttäneet kokonaislukuja python-alueella (). Olemme myös nähneet, että liukulukuisia numeroita ei tueta python-alueella. Yritetään nähdä tulos, mitä tapahtuu, kun käytämme merkkejä.
Esimerkki:
for c in range ('z'):print(c, end =" ")
Tuotos:
Traceback (most recent call last):File "python_range.py", line 1, infor c in range ('z'):TypeError: 'str' object cannot be interpreted as an integer
Se heittää virheen sanomalla, että merkkijonoa ei voida tulkita kokonaisluvuksi.
Saat luettelon aakkosista mukauttamalla koodia ja saadaksesi haluamasi tulosteet alla esitetyllä tavalla:
Esimerkki:
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)))
Tuotos:
['a', 'b', 'c', 'd', 'e', 'f', 'g']
Kuinka päästä alue-elementteihin
Voit käyttää for-loop-toimintoa saadaksesi arvot alueelta tai hakemiston avulla päästäksesi alueen () elementteihin.
Käyttämällä for-silmukkaa
Esimerkki:
for i in range(6):print(i)
Tuotos:
012345
Hakemiston käyttö
Indeksiä käytetään alueen kanssa saadakseen kyseisessä paikassa käytettävissä olevan arvon. Jos aluearvo on 5, aloitusarvon saamiseksi voit käyttää aluetta (5) [0] ja seuraavaa arvoaluetta (5) [1] ja niin edelleen.
Esimerkki:
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)
Tuotos:
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)
Listan () käyttäminen
Tämä menetelmä tulostaa kaikki alueen () elementit. Listan () avulla se palauttaa alueen () elementit luettelomuodossa.
Esimerkki:
print(list(range(10)))
Tuotos:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Se antaa luettelolähdön annetulle alueelle.
Esimerkki: Hae parilliset numerot käyttämällä aluetta ()
Range () -toiminnon avulla saadaan luettelo parillisista numeroista annetulla alueella. Alueen () parametrit ovat, alku on 2, lopetus on 20 ja askel on 2, joten arvoja korotetaan 2: lla ja annetaan parilliset numerot stop-2: een saakka.
Esimerkki:
for i in range(2, 20, 2):print(i, end =" ")
Tuotos:
2 4 6 8 10 12 14 16 18
Kahden alueen () lähtöjen yhdistäminen
Tässä esimerkissä ketjutetaan 2 alue () -funktiota itertoolien moduuliketjun () toiminnon avulla.
Esimerkki:
from itertools import chainprint("Merging two range into one")frange =chain(range(10), range(10, 20, 1))for i in frange:print(i, end=" ")
Tuotos:
Merging two range into one0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Käyttämällä aluetta () NumPyn kanssa
NumPy-moduulissa on arange () -toiminto, joka toimii ja antaa samanlaisen tuotoksen, kuten alue (). Järjestä () ottaa samat parametrit kuin alue ().
Syntaksi:
arange(start, stop, step)
Voit työskennellä NumPyn kanssa noudattamalla seuraavia ohjeita.
Vaihe 1 : Tuo NumPy-moduuli
import numpy
Lataus suorituksen aikana antaa virheen sanomalla, että numpy-moduulia ei löydy, moduuli on asennettava vaiheen 2 mukaisesti.
Vaihe 2 : Asenna NumPy
pip install numpy
Vaihe 3 : Työskentelyesimerkki arange (): sta NumPyn avulla
import numpy as npfor i in np.arange(10):print(i, end =" ")
Tuotos:
0 1 2 3 4 5 6 7 8 9
Liukuluvut käyttämällä NumPy-aluetta ()
Liukulukusarjaa ei ole mahdollista saada käyttämällä aluetta (), mutta se on mahdollista käyttämällä NumPy-arvoa ().
Esimerkki:
Haluamasi alue on välillä 0,5 - 1,5. Arvo kasvaa 0,2: lla.
import numpy as npfor i in np.arange(0.5, 1.5, 0.2):print(i, end =" ")
Tuotos:
0.5 0.7 0.8999999999999999 1.0999999999999999 1.2999999999999998
Saatu tulos on hieman outo, jotkut float-luvut näytetään 16 desimaalin tarkkuudella. Tämä tapahtuu, koska desimaalisten kelluvien numeroiden tallentaminen binäärimuodossa on monimutkaista. Voit myös pyöristää arvot tarvittaessa ja rajoittaa ne tarvitsemasi desimaaleihin.
Yhteenveto:
- Python-alue () on sisäänrakennettu toiminto, joka on saatavana Pythonin kanssa Pythonilta (3.x), ja se antaa numerosarjan annettujen aloitus- ja lopetusindeksien perusteella. Jos aloitusindeksiä ei anneta, indeksi katsotaan 0: ksi, ja se lisää arvoa lopetusindeksiin asti.
- Python-alue () on otettu käyttöön python-versiosta 3, ennen kuin funktio oli xrange ().
- Alue () antaa numerosarjan ja palauttaa luettelon numeroista. Xrange () -funktio antaa generaattoriobjektin, joka on silmukoitava for-loop-arvoon arvojen saamiseksi.
- Alueen () parametrivaihetta voidaan käyttää arvon lisäämiseen / vähentämiseen. Oletusarvoisesti se on positiivinen arvo 1. Joten se antaa aina kasvavia arvoja.
- Python antaa virheen liukulukuille, koska alue () -toiminto tukee vain kokonaislukuja.
- Alueen () arvot ovat käytettävissä for-loopilla, hakemistolla ja listalla ()
- NumPy-moduulissa on arange () -toiminto, joka toimii ja antaa samanlaisen tuotoksen, kuten alue (). Alue () ottaa samat parametrit kuin alue ().
- Alueella () voidaan saada liukulukusarja NumPy arange (), jota ei tueta.