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. Allaolevassa 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.

For -silmukan rakenne: 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 "in" sana, joka kuvastaa aiemman "luku" -muuttujan yhteyttä jälkimmäiseen range -funktioon, taulukkoon tai listaan. Viimeisenä tulee silmukan pituuden määritys, allaolevassa 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 on:

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

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 läpikäydä listoja ja taulukoita. Molempien, listan sekä taulukon ensimmäiseen jäseneen eli alkioon viitataan numerolla nolla, seuraavaan numerolla yksi, kasvaen aina yhdellä. Näin ollen, kun meillä on taulukko:

numerotaulukko = [4,5,6,3,1,9]
print(numerotaulukko[0])
tulostaa meille 4, koska nollannes alkio taulukossa 'numerotaulukko' on 4.
Print(numerotaulukko[3])
tulostaa meille 3, koska kolmannes alkio taulukossa 'numerotaulukko on' 3.


Esimerkki 3.
For -silmukalla voidaan läpikäydä taulukoita. Huomaa: 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


Video for -silmukoista