while-silmukka Pythonissa. Kuinka se toimii, esimerkkejä käytöstä

Silmukat ovat yksi minkä tahansa kielen tärkeimmistä työkaluista. Pythonissa on kaksi perussilmukkaa, joista toinen on while. Harkitse sitä, ja myös kuvan paremman ymmärtämiseksi, vielä yksi. Todellakin, verrattuna johonkin vastaavaan, on paljon helpompi ymmärtää mitä tahansa materiaalia, eikö niin?

Syklin käsite

Silmukkaa tarvitaan, kun tietty toiminto on suoritettava useita kertoja. Tämä on hyvin yksinkertaista, koska todellisuudessa syklien sovellusalue on paljon laajempi. Pythonissa on kaksi päätyyppiä silmukoita: for ja while. Suosituin on tarkoitettu.

Tiettyjen toimien lisäksi voit silmukalla erilaisia ​​koodinpätkiä tiettyyn pisteeseen asti. Tämä voi tapahtua tietyn määrän kertoja tai niin kauan kuin tietty ehto on totta.

Ennen kuin alamme ymmärtää silmukoiden tyyppejä ja erityisesti, meidän on vielä ymmärrettävä, mitä iteraatio on. Tämä on yksi toiminnon tai toimintosarjan toisto nykyisen jakson aikana nykyisen sovellusajon aikana.

Cycle For

For-silmukamme ei ole laskuri, kuten monissa muissa kielissä. Sen tehtävänä on luetella tietty arvosarja. Mitä tämä tarkoittaa? Oletetaan, että meillä on luettelo elementeistä. Ensinnäkin silmukka ottaa ensimmäisen, toisen, kolmannen ja niin edelleen.

Tämän Python-silmukan etuna on, että sinun ei tarvitse määrittää elementin indeksiä tietääksesi milloin silmukasta tulee poistua. Kaikki tehdään automaattisesti.

>>> spisok = [10, 40, 20, 30]

>>> elementille spisokissa:

… tulosta (elementti + 2)

...

12

42

22

32

Esimerkissämme käytimme muuttujaa elementti for-komennon jälkeen. Yleensä nimi voi olla mikä tahansa. Esimerkiksi suosittu nimitys on i. Ja jokaisella iteraatiolla tälle muuttujalle määritetään luettelosta tietty objekti, jota kutsuimme sopivaksi sanaksi.

Meidän tapauksessamme lista on numerosarja 10,40,20,30. Jokaisessa iteraatiossa muuttujassa näkyy vastaava arvo. Esimerkiksi heti silmukan alkaessa muuttuja elementti arvo 10 on määritetty. Seuraavalla iteraatiolla kymmenestä tulee numero 40, kolmannella luvuksi 20 ja lopuksi silmukan viimeisellä iteraatiolla se muuttuu 30:ksi.

Jakson päättymissignaali on luettelon elementtien loppu.

Jos tarvitset silmukkaa klassisen arvojen numeroinnin suorittamiseen, kuten muissa ohjelmointikielissä, sinun tulee luoda luettelo luonnollisista numeroista tarvitsemamme arvon mukaan.

>>> spisok = [1,2,3,4,5]

Tai käytä toimintoa len(), määrittääksesi luettelon pituuden. Mutta tässä tapauksessa on parempi käyttää silmukkaa sillä aikaa, koska muuttujaa ei tarvitse käyttää.

Jos sinun on muutettava arvojen järjestystä luettelossa, silmukka varten ja tässä tulee apuun. Tätä varten jokaisessa iteraatiossa luettelon jokaiselle elementille on annettava asianmukainen arvo.

Vaikka silmukka

Toisin kuin sykli varten, joka yksinkertaisesti toistaa sekvenssin, silmukan, arvojen yli vaikka on enemmän käyttöä. Tämän tyyppisten syklien nimi on käännetty "vielä". Eli "kunnes".

Tämä on universaali silmukka, joka löytyy kaikista ohjelmointikielistä. Ja jollain tapaa se muistuttaa ehdollista operaattoria marjakuusi, joka tarkistaa, täyttyykö tietty ehto. Vain toisin kuin ehdollinen operaattori, vaikka suorittaa tarkistuksen joka iteraatiossa, ei vain kerran. Ja vain jos ehto on epätosi, silmukka päättyy ja sitä seuraava komento suoritetaan. Yksinkertaisesti sanottuna, jos tilanne, jossa hän työskentelee, ei ole enää voimassa.

Jos piirretään sykli vaikka Yksinkertaisesti tämä tehdään käyttämällä tällaista järjestelmää.while-silmukka Pythonissa. Kuinka se toimii, esimerkkejä käytöstä

Ohjelman päähaara (joka kulkee silmukan ulkopuolella) on kuvattu tässä kuvassa sinisillä suorakulmioilla. Turkoosi edustaa syklin runkoa. Rombi puolestaan ​​on ehto, joka tarkistetaan jokaisessa iteraatiossa.

Sykli vaikka voi aiheuttaa kaksi poikkeusta:

  1. Jos silmukan alussa looginen lauseke ei palauta tosi, se ei yksinkertaisesti ala, kun se on valmis ennen suoritusta. Yleensä tämä tilanne on normaali, koska tietyissä olosuhteissa sovellus ei välttämättä tarjoa lausekkeiden läsnäoloa silmukan rungossa.
  2. Jos lauseke on aina tosi, tämä voi johtaa silmukaan. Eli syklin loputtomaan vieritykseen. Siksi tällaisissa ohjelmissa tulisi aina olla silmukasta tai ohjelmasta poistumiskäsky. Tämä tilanne kuitenkin syntyy, jos ohjelma pystyi määrittämään tietyn ehdon totuuden tai virheellisyyden. Jos hän ei tehnyt tätä, ohjelman päättyessä palautetaan virhe. Tai voit käsitellä virheen, ja sitten, jos se tapahtuu, tietty koodi suoritetaan.

Virheen käsittelyyn voi olla valtava määrä vaihtoehtoja. Ohjelma voi esimerkiksi pyytää käyttäjää syöttämään tiedot oikein. Joten jos henkilö ilmoitti negatiivisen luvun, jossa se voi olla vain positiivinen, tai syötti kirjaimia, joissa pitäisi olla vain numeroita, ohjelma voi kertoa siitä.

Vaikka Loop Esimerkkejä

Tässä on esimerkki koodista, joka käsittelee virheen tässä tapauksessa.

n = input("Anna kokonaisluku: ") 

while type(n) != int:

    kokeilla:

        n = int(n)

    paitsi ValueError:

        tulosta ("Väärä merkintä!")

        n = input("Anna kokonaisluku: ") 

jos n % 2 == 0:

    tulosta ("tasainen")

else:

    tulosta ("Odd")

Muista, että Python käyttää kaksoispisteitä monimutkaisten koodirakenteiden ilmoittamiseen.

Yllä olevassa koodissa määritimme ehdoksi, että meidän pitäisi tarkistaa, onko luku kokonaisluku. Jos kyllä, palautetaan false. Jos ei, niin totta.

Koodin toisessa osassa, jossa käytetään operaattoria if, käytimme %-operaattoria löytääksemme jakooperaation jälkeisen jäännöksen. Seuraava vaihe on tarkistaa, onko luku parillinen. Jos ei, niin loppuosa on tässä tapauksessa yksi. Näin ollen luku on pariton. 

Yksinkertaisesti sanottuna yllä oleva koodi tarkistaa ensin, onko käyttäjän syöttämä merkkijono numero. Jos kyllä, suoritetaan toinen tarkistus, jotta nähdään, onko kahdella jaosta jäljellä. Mutta toista lohkoa ei suoriteta ennen kuin käyttäjän syöttämä arvo on numeerinen.

Toisin sanoen silmukka suoritetaan säännöllisesti, kunnes ehto täyttyy. Tässä tilanteessa se toimii näin. 

Toisin sanoen voit siirtyä päinvastaisesta: silmukasta tiettyä toimintoa, kunnes tapahtumasta tulee epätosi.

Koodin jäsentäminen

Katsotaan nyt tarkemmin, kuinka tämä koodi toimii. Tätä varten analysoimme sen vaihe vaiheelta.

  1. Ensin käyttäjä syöttää merkkijonon, jonka muuttuja n hyväksyy. 
  2. Käyttämällä silmukkaa vaikka tämän muuttujan tyyppi tarkistetaan. Ensimmäisellä merkinnällä se ei ole sama int. Siksi testin tuloksena havaitaan, että tämä ehto on totta. Siksi silmukan runko syötetään.
  3. Operaattorin avustuksella yrittää yritämme muuntaa merkkijonon numeroksi. Jos tämä tehdään, virhettä ei tapahdu. Näin ollen sitä ei tarvitse käsitellä. Siksi tulkki palaa silmukan alkuun ja tarkistuksen tulosten mukaan käy ilmi, että siitä on tullut kokonaisluku. Joten siirrytään vaiheeseen 7
  4. Jos muunnos ei onnistunut, annetaan ValueError. Tässä tapauksessa ohjelmakulku lähetetään paitsi käsittelijälle.
  5. Käyttäjä syöttää uuden arvon, joka annetaan muuttujalle n.
  6. Tulkki palaa vaiheeseen 2 ja tarkistaa uudelleen. Jos se on kokonaisluku, siirry vaiheeseen 7. Jos ei, muunnos yritetään uudelleen vaiheen 3 mukaisesti.
  7. Operaattorin avustuksella if Määrittää, onko jäljellä jäännöstä luvun jakamisen jälkeen kahdella. 
  8. Jos ei, palautetaan teksti "parillinen".
  9. Jos ei, palautetaan teksti "pariton".

Mieti nyt tällaista esimerkkiä. Yritä määrittää kuinka monta kertaa tämä sykli käy läpi?

yhteensä = 100 

i = 0

kun minä <5:

    n = int(tulo())

    yhteensä = yhteensä - n

    i = i + 1 

tulosta ("Jäljellä", yhteensä)

Oikea vastaus on 5. Aluksi muuttujan arvo i - nolla. Tulkki tarkistaa, onko muuttuja yhtä suuri i 4 tai vähemmän. Jos kyllä, arvo palautetaan. totta, ja silmukka suoritetaan vastaavasti. Arvoa kasvatetaan yhdellä.

Ensimmäisen iteraation jälkeen muuttujan arvoksi tulee 1. Suoritetaan tarkistus ja ohjelma ymmärtää, että tämä luku on jälleen pienempi kuin 5. Näin ollen silmukan runko suoritetaan toisen kerran. Koska vaiheet ovat samanlaisia, arvoa kasvatetaan myös yhdellä, ja muuttuja on nyt yhtä suuri kuin 2.

Tämä arvo on myös alle viisi. Sitten silmukka suoritetaan kolmannen kerran, lisätään muuttujaan i 1 ja sille annetaan arvo 3. Tämä on jälleen vähemmän kuin viisi. Ja niin se tulee silmukan kuudenteen iteraatioon, jossa muuttujan arvo i on yhtä suuri kuin 5 (se oli alun perin nolla, sikäli kuin muistamme). Näin ollen tämä ehto ei läpäise testiä, ja silmukka päättyy automaattisesti ja siirtyminen seuraavaan vaiheeseen, joka on sen ulkopuolella (tai ohjelman lopettaminen, jos seuraavia vaiheita ei ole säädetty), suoritetaan.

Kierto voi tapahtua myös päinvastaiseen suuntaan. Tässä on esimerkki koodista, jossa jokaisessa myöhemmässä iteraatiossa muuttujan nykyisestä arvosta vähennetään yksi. 

yhteensä = 100 

kun taas yhteensä > 0:

    n = int(tulo())

    yhteensä = yhteensä - n 

tulosta ("Resurssit loppu"

Yritä arvata, mitä tämä ohjelma tekee! Kuvittele se muuttujana koko tiedot ohjelmaresursseista tallennetaan. Joka kerta, kun tulkki tarkistaa, onko resurssia olemassa. Jos ei, näyttöön tulee teksti "Resurssi käytetty" ja ohjelma sulkeutuu. Ja jokaisella silmukan iteraatiolla resurssi pienenee käyttäjän määrittämän numeron verran.

Ja nyt läksyt. Yritä muuttaa yllä olevaa koodia, jotta muuttuja ei voi tulla fyysisesti negatiiviseksi. 

4 Kommentit

  1. si koodi ahaan usoo gudbi

Jätä vastaus