Python

Luo laskureilla silmukoita käyttämällä Pythonin laskentatoimintoa

Luo laskureilla silmukoita käyttämällä Pythonin laskentatoimintoa

Tässä artikkelissa kerrotaan Pythonin vakiomoduulikirjastossa olevan “luetella” -toiminnon käytöstä. Luettelotoiminnon avulla voit määrittää "indeksin" tai "laskea" minkä tahansa iteroitavan objektin elementeille. Sitten voit toteuttaa niissä lisää logiikkaa, koska sinulla on pääsy molempiin arvoihin ja niihin yhdistettyyn määrään.

Syntaksi ja perusesimerkki

Jos olet käyttänyt “for” -silmukkaa muilla ohjelmointikielillä, etenkin ”C” -kielellä ja muilla kielillä, joilla on ”C” -tyyppinen syntakse, olet ehkä määrittänyt aloitushakemiston silmukassa. Tässä on, mitä “for” -silmukka näyttää C-kirjaimella ja muilla kielillä, joilla on samanlainen syntakse:

varten (int i = 0; i < 10; i++)

printf ("% d \ n", i);

Silmukka-lause alustaa muuttujan, jonka arvo on nolla, tarkistaa, että se on pienempi kuin kynnys, ja lisää sitä yhdellä määrällä arvioidessaan logiikkaa silmukkalohkossa (jos pysäytysolosuhteet täyttyvät). Tällä tavoin voit käyttää hakemistoa ja määrittää sen kaikille silmukkalohkossa viitatuille objekteille. Vertailun vuoksi tässä on sama tulos for for -silmukka Pythonissa:

i: lle alueella (0, 10):
tulosta (i)

Pythonin "alue" -toiminnon avulla voit määrittää numeroaluejärjestyksen, jonka oletusvaihe on 1. Voit muuttaa vaiheen arvoa antamalla kolmannen argumentin. Alue-funktion toista argumenttia käytetään asettamaan kynnys pysäytysolosuhteille. Molemmat koodinäytteet tuottavat seuraavan ulostulon:

0
1
2
3
4
5
6
7
8
9

Nämä silmukat toimivat hyvin, jos haluat vain luoda jonkin numerosarjan ja liittää ne johonkin logiikkaan silmukka-lauseessa. Saatat kuitenkin joutua käyttämään toista sisäkkäistä silmukkaa tai käyttämään "tuotto" -toimintoa missä tahansa iteroitavassa tyypissä määrittääkseen heille jonkinlaisen seurattavan määrän. "Enumerate" -menetelmän avulla on helppo määrittää hakemistoja iterableille yhdessä lauseessa, mikä eliminoi tarpeen käyttää useita sisäkkäisiä silmukoita. Katso tämä koodinäyte:

numerot = ["nolla", "yksi", "kaksi", "kolme", ​​"neljä", "viisi"]
enumerated_numbers = luetella (numerot)
hakemistolle, kohde numeroiduissa numeroissa:
tulosta (hakemisto, kohde)

Ensimmäinen lause määrittelee uuden muuttujan nimeltä "numerot" ja määrittää sille iteroitavan (luettelotyypin). Toinen lauseke osoittaa "luetella" -funktion käytön, jossa syötät sille iteroitavan pakollisena argumenttina. Kolmas lause muuntaa muuttujan "enumerated_numbers" luettelotyyppiseksi objektiksi. "Enumerate" -funktio luo oletusarvoisesti "enumerate" -tyyppisen objektin eikä iteroitavaa tyyppiä, joten sinun on muunnettava se. Kun olet suorittanut yllä mainitun koodinäytteen, sinun pitäisi saada seuraava lähtö:

[(0, 'nolla'), (1, 'yksi'), (2, 'kaksi'), (3, 'kolme'), (4, 'neljä'), (5, 'viisi')]

Laskentatoiminto määrittää määrän jokaiselle iteroitavan tyyppiselle elementille ja luo parit, joilla on pariksi liitetyt arvot. Oletuksena laskenta alkaa nollasta.

Nyt kun olet määrittänyt numeron kullekin elementille iteroitavissa olevassa muodossa, voit helposti siirtyä sen yli kirjoittamatta sisäkkäisiä lauseita:

numerot = ["nolla", "yksi", "kaksi", "kolme", ​​"neljä", "viisi"]
enumerated_numbers = luetella (numerot)
hakemistolle, kohde luetteloiduissa numeroissa:
tulosta (hakemisto, kohde)

Edellä määritelty koodinäyte tuottaa seuraavan tuloksen:

0 nolla
1 yksi
2 kaksi
3 kolme
4 neljä
5 viisi

Voit lyhentää koodia käyttämällä rivinvaihto-funktiota "luetella", kuten alla olevassa esimerkissä näkyy:

numerot = ["nolla", "yksi", "kaksi", "kolme", ​​"neljä", "viisi"]
hakemistolle, kohde luettelossa (numerot):
tulosta (hakemisto, kohde)

Laskennan käyttäminen eri aloitushakemiston kanssa

Laskentatoiminto vie valinnaisen argumentin, jossa voit määrittää alkuhakemiston. Oletusarvoisesti se on nolla, mutta voit muuttaa sitä käyttämällä "Käynnistä" -argumenttia:

numerot = ["yksi", "kaksi", "kolme", ​​"neljä", "viisi"]
hakemistolle, erä luettelossa (numerot, alku = 1):
tulosta (hakemisto, kohde)

Toisessa lauseessa "start = 1" -argumenttia käytetään muuttamaan lähtökohtaa. Kun olet suorittanut yllä määritetyn koodinäytteen, sinun pitäisi saada seuraava tulos:

1 yksi
2 kaksi
3 kolme
4 neljä
5 viisi

Hakemiston määrittäminen vaiheilla

Tämän artikkelin ensimmäisessä osassa näkyy "for" -silmukan syntaksit "C" -kielellä, jossa voit määrittää vaiheet jokaisen seuraavan laskennan tai indeksin välillä. Pythonin “luetella” -funktiolla ei ole tällaista argumenttia käytettävissä, joten et voi määrittää vaihetta laskelmien välillä. Voit todellakin kirjoittaa oman logiikkasi toteuttamaan vaiheet luetellun "for" -silmukkalohkon sisällä. On kuitenkin tapa toteuttaa mukautetut vaiheet kirjoittamalla minimaalinen koodi. Seuraava esimerkki näyttää vaiheiden toteuttamisen käyttämällä zip- ja range-toimintoja:

numerot = ["nolla", "kaksi", "neljä", "kuusi"]
hakemistolle, kohde vetoketjulla (alue (0, 7, 2), numerot):
tulosta (hakemisto, kohde)

"Zip" -toiminnon avulla voit luoda pareja poimimalla saman indeksin sisältäviä elementtejä kahdesta tai useammasta iteratiivista. Joten “zip” -toiminto poimii elementin ”range (0, 7, 2)” -toiminnosta palautetusta iteroitavasta elementistä ja toisen elementin “numerot” -luettelosta ja pariliittää ne sitten molempiin. Lopputulos on identtinen toteutus kuin "luetella" -funktio, mutta mukautetut vaiheet määritetään kolmanneksi argumentiksi "alue (0, 7, 2)" -toiminnossa (tässä tapauksessa 2). Kun olet suorittanut yllä määritetyn koodinäytteen, sinun pitäisi saada seuraava tulos:

0 nolla
2 kaksi
4 neljä
6 kuusi

Johtopäätös

Pythonin “luetella” -toiminnon avulla voit kirjoittaa tiiviin koodin osoittamalla numerosarjan iteroitavan objektin elementeille. Tämä on todella hyödyllistä, jos haluat seurata iterointityypin sisällä olevien tuotteiden hakemistoa. Jos haluat "luetella" iteroitavia tyyppejä mukautetuilla vaiheilla, käytä viimeisessä esimerkissä kuvattua "zip" -toimintoa.

Kuinka näyttää OSD-peitto koko näytön Linux-sovelluksissa ja peleissä
Koko näytön pelien pelaaminen tai sovellusten käyttäminen häiriöttömässä koko näytön tilassa voi estää sinut paneelissa tai tehtäväpalkissa näkyvistä ...
Viisi parasta pelin kaappauskorttia
Olemme kaikki nähneet ja rakastaneet suoratoistopelejä YouTubessa. PewDiePie, Jakesepticye ja Markiplier ovat vain joitain huippupelaajista, jotka ova...
How to Develop a Game on Linux
A decade ago, not many Linux users would predict that their favorite operating system would one day be a popular gaming platform for commercial video ...