for i in range(5): print(i)
Kun suoritamme ohjelman, se tulostaa seuraavat rivit:
0 1 2 3 4
Merkintä range(n)
tarkoittaa,
että silmukka käy läpi n
ensimmäistä kokonaislukua nollasta alkaen
eli luvut 0...n-1
.
Esimerkiksi yllä oleva silmukka käy läpi luvut 0...4
muuttujan i
avulla.
Jokaisen luvun kohdalla suoritetaan silmukan
sisällä oleva koodi.
Tässä tapauksessa koodina on print(i)
,
eli ohjelma tulostaa luvun i
.
Huomaa, että silmukan sisällä oleva koodi on sisennetty eli sen edessä on tyhjää tilaa. Saamme tämän aikaan painamalla tab-nappia rivin alussa. Sisennys ilmaisee, mitä osaa koodista tulee toistaa silmukassa. Jos sisennys puuttuu, koodi ei toimi halutulla tavalla, joten on tärkeää, että sisennys on tehty oikein.
Löydät tab-napin näppäimistöltä tästä:
Silmukan hienoutena on, että voimme kätevästi muuttaa, mitä lukuja se käy läpi. Esimerkiksi voimme muuttaa silmukkaa näin:
for i in range(8): print(i)
Tämän seurauksena ohjelma tulostaakin luvut 0...7:
0 1 2 3 4 5 6 7
Merkintä range(a,b)
tarkoittaa,
että aloitamme luvusta a
ja lopetamme juuri ennen lukua b
.
Esimerkiksi seuraava koodi tulostaa luvut 1...5:
for i in range(1,6): print(i)
Ohjelma toimii näin:
1 2 3 4 5
Merkintä range(a,b,c)
tarkoittaa,
että luku kasvaa c
:llä joka askeleen jälkeen.
Voimme esimerkiksi tulostaa parillisia lukuja näin:
for i in range(4,13,2): print(i)Ohjelma toimii näin:
4 6 8 10 12Voimme myös tulostaa lukuja suurimmasta pienimpään antamalla negatiivisen kasvatuksen:
for i in range(5,0,-1): print(i)Ohjelma toimii näin:
5 4 3 2 1
Voimme käyttää silmukan muuttujaa haluamallamme tavalla
silmukan sisällä.
Esimerkiksi seuraava silmukka tulostaa joka askeleella
sekä luvun i
että sen neliön i*i
.
for i in range(1,6): print("luvun",i,"neliö on",i*i)
Ohjelman tulostus on seuraava:
luvun 1 neliö on 1 luvun 2 neliö on 4 luvun 3 neliö on 9 luvun 4 neliö on 16 luvun 5 neliö on 25
Toisaalta voimme luoda myös silmukan, joka ei käytä mitenkään silmukan muuttujaa vaan vain toistaa samaa koodia. Näin on seuraavassa ohjelmassa:
for i in range(5): print("Heippa!")
Tämä ohjelma tulostaa viisi kertaa tekstin "Heippa!"
:
Heippa! Heippa! Heippa! Heippa! Heippa!
Kirjoita ohjelma tähän:
Kirjoita ohjelma tähän:
Kirjoita ohjelma tähän:
Kirjoita ohjelma tähän:
Kirjoita ohjelma tähän:
apina
ja banaani
.
Kirjoita ohjelma tähän: