Tunti 11 For -silmukka

For -silmukka

While -silmukan lisäksi Python -ohjelmointikielessä on for -silmukka. While -silmukan lailla for -silmukka toistaa jotakin asiaa useampaan kertaan. For -silmukka toistaa jotakin asiaa sille annettujen rajojen mukaisesti. Alla olevassa esimerkissä käytetään range -funktiota määräämään silmukan toistokerrat. Range -funktiolle voidaan antaa sulkujen sisään yksi, kaksi tai kolme lukua. Yhden luvun tapauksessa for -silmukka tulkitsee toistojen alkavan luvusta 0 ja päättyvän annettuun lukuun, kahden luvun tapauksessa ensimmäinen luku on luku, josta suoritus alkaa ja toinen luku, johon päätetään. Tätä käytetään esimerkissä 1. Kolmen luvun tapauksessa aiemmin esitetty kahden luvun tapaus pätee ja kolmas luku määrää askelten pituuden, tästä esimerkissä 2.

Alla olevalla videolla on käsitellään tätä asiaa:


For -silmukan rakenne on seuraavanlainen: Ensimmäisenä tulee termi "for", joka osoittaa for -silmukan alun. Seuraavana esitellään muuttuja "luku" (joka voi olla mitä vain, Esimerkki 1. tapauksessa se on 'k'), jonka avulla käydään läpi silmukan annettujen rajojen suoritus. Seuraavaksi tulee sana "in", joka kuvastaa aiemman "luku" -muuttujan yhteyttä jälkimmäiseen range -funktioon, taulukkoon tai listaan. Viimeisenä tulee silmukan pituuden määritys, alla olevassa esimerkissä range(0,5) -funktio, joka kuvastaa viiden kokonaisluvun joukkoa. Muissa ohjelmointikielissä pythonin for -silmukka on nimeltään foreach -silmukka. Muiden kielien tapauksessa for -silmukka on hieman erilainen pythoniin verrattuna.

For -lausekkeen rakenne:

for luku in range(0,5):
 print(luku)


Ohjelman eteneminen:

Silmukan sisällä tapahtuvaa (näkymätöntä), ensimmäinen kierros:
for luku in range(0,5):
 luku = 0 <---tämän kohdan python piilottaa, sijoitetaan luku -muuttujaan joukon ensimmäinen luku.
 print(luku)

luku -muuttujaan sijoitetaan joukon ensimmäinen luku (range(0,5) tapauksessa 0) ja tämä tulostetaan, siirrytään silmukan uuteen kierrokseen, jolloin luku -muuttujaan sijoitetaan joukon toinen termi ja tämä tulostetaan (esimerkin tapauksessa 1). Tätä toistetaan, kunnes joukon jokainen alkio on tulostettu. Huomaa, range(0,5) toistaa lopetuslukua yhtä pienempään lukuun, koska range -funktio alkaa numerosta 0 ja numeron 4 kohdalla on käyty läpi viisi kokonaislukua, range(0,5) -kuvastaa siis viiden kokonaisluvun joukkoa.

* Esimerkki 1.*
Käytetään range -funktiota määräämään toistokerrat. Huomaa, että range(0,5) toistaa
lopetuslukua yhtä pienempään lukuun, sillä se alkaa jo nollasta.


<> Tehtävä 1. Tee ohjelma, joka tulostaa luvut välillä -2 ja 10.


<> Tehtävä 2. Tee ohjelma, joka pyytää käyttäjältä syötteeksi positiivisen kokonaisluvun ja tulostaa peräkkäisten positiivisten kokonaislukujen summan kyseiseen lukuun saakka.


* Esimerkki 2.* Range -funktioon voidaan määrätä myös askelten pituus.


<> Tehtävä 3. Tee ohjelma, joka tulostaa silmukan avulla numerot numerosta 7 alkaen korkeintaan lukuun 144, kuuden välein.


Ensimmäisessä esimerkissä käytettiin range -funktiota määräämään for -silmukan suorituskerrat. For -silmukan avulla voidaan myös käydä läpi listoja ja muita tietorakenteita, kuten taulukoita. Listan ensimmäiseen jäseneen eli alkioon viitataan numerolla nolla, seuraavaan numerolla yksi, kasvaen aina yhdellä. Näin ollen, kun meillä on lista:

numerolista = [4,5,6,3,1,9]

print(numerolista[0]) -komento tulostaa meille 4, koska nollannes alkio listassa 'numerolista' on 4.
Sen sijaan print(numerolista[3]) -komento tulostaa meille 3, koska kolmannes alkio listassa 'numerolista' on 3.

* Esimerkki 3.*
For -silmukalla voidaan läpikäydä lista. Muista, että risuaita # merkki aloittaa kommentit, joiden avulla pyritään selventämään koodia.


<> Tehtävä 4. Tulosta listan alkiot tulostamalla koko lista.


* Esimerkki 4.* For -silmukan avulla voidaan myös muuttaa listoja.


<> Tehtävä 5. Tee ohjelma, joka pyytää käyttäjältä ensin viittä numeroa silmukassa, tallentaa arvot listaan ja kertoo listan alkiot itsellään sekä tulostaa muutetun listan.


* Esimerkki 5.* Silmukka silmukan sisällä.


<> Tehtävä 6.
Kirjoita ohjelma, jossa on silmukkarakenne, joka tulostaa seuraavat järjestyksessä. Käytä apuna silmukkaa ja listaa.
a) A1, A2, A3, B1, B2, B3, C1, C2, C3
b) A1,B1, C1, A2, B2, C2, A3, B3, C3

Peda.net käyttää vain välttämättömiä evästeitä istunnon ylläpitämiseen ja anonyymiin tekniseen tilastointiin. Peda.net ei koskaan käytä evästeitä markkinointiin tai kerää yksilöityjä tilastoja. Lisää tietoa evästeistä