Python-alue () Toiminto: Kelluva, Lista, silmukkaesimerkkejä varten

Sisällysluettelo:

Anonim

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