Tähän asti olemme kirjoittaneet ohjelmia, jotka suoritetaan vain kerran. Ohjelma on siis suoritettu, kun se on saavuttanut loppunsa. Usein haluamme kuitenkin, että ohjelma suoritetaan useita kertoja, esimerkiksi niin kauan kuin käyttäjä haluaa jatkaa ohjelman käyttöä. Tällöin tarvitsemme silmukkaa. Silmukka on ohjelman osa, joka suoritetaan uudestaan ja uudestaan, kunnes tietty ehto täyttyy. Pythonissa on useita tapoja kirjoittaa silmukoita, mutta tässä luvussa keskitymme while-silmukkaan.
while-silmukka suoritetaan niin kauan kuin sen ehto on tosi. Se kirjoitetaan seuraavasti:
while ehto:
# suoritettavat lauseetEsimerkiksi, jos haluamme tulostaa "Hei maailma!" viisi kertaa, voimme käyttää while-silmukkaa seuraavasti:
i = 1
while i <= 5:
print("Hei maailma!")
i += 1Konsoli
Esimerkkitulostus
Hei maailma! Hei maailma! Hei maailma! Hei maailma! Hei maailma!
Tässä ohjelmassa aloitamme määrittelemällä muuttujan i jonka avulla pidämme kirjaa siitä, kuinka monta kertaa olemme tulostaneet "Hei maailma!". while-silmukka suoritetaan niin kauan kuin i on pienempi tai yhtä suuri kuin 5. Jokaisella silmukan suorituskerralla tulostamme "Hei maailma!" ja kasvatamme i-muuttujaa yhdellä. Kun i saavuttaa arvon 6, ehto i <= 5 ei enää päde, ja silmukka lopettaa suorituksensa.
Tämän olisi voinut toteuttaa myös ilman silmukkaa, mutta se olisi vaatinut viisi erillistä print()-komentoa. Ohjelmoijat ovat tunnetusti laiskoja, joten he haluavat kirjoittaa mahdollisimman vähän koodia tekemään asioita, jotka voidaan toteuttaa tehokkaasti. Silmukat ovat yksi tapa tehdä tämä.
Silmukoiden kanssa on syytä olla varovainen, sillä on mahdollista kirjoittaa ohjelma, joka ei koskaan lopu. Tällöin puhutaan ikuisesta silmukasta. Ikuinen silmukka syntyy, kun while-silmukan ehto on aina tosi. Esimerkiksi:
while True:
print("Tämä on ikuinen silmukka!")Tämä ohjelma tulostaa "Tämä on ikuinen silmukka!" loputtomasti, koska True on aina tosi. Ikuiset silmukat voivat olla hyödyllisiä tietyissä tilanteissa, kuten palvelimilla, jotka haluavat kuunnella jatkuvasti saapuvia pyyntöjä. Kuitenkin, jos kirjoitat ikuisen silmukan vahingossa, se voi aiheuttaa ongelmia, kuten tietokoneen hidastumista tai kaatumista. Siksi on tärkeää varmistaa, että while-silmukan ehto muuttuu epätodeksi jossain vaiheessa.
Kokeile kirjoittaa ikuinen silmukka ja katso, mitä tapahtuu. Tämä sivusto on turvallinen paikka kokeilla tällaisia asioita, sillä sivu lopettaa ohjelman suorituksen 5 sekunnin jälkeen.
Konsoli