...
Valintarakenteiden
...
lisäksi
...
Pythonissa
...
on
...
koodin
...
suorituksen
...
hallitsemiseksi
...
toistorakenteet.
...
Ne
...
nimensä
...
mukaisesti
...
toistavat
...
niissä
...
olevaa
...
koodia.
...
Pythonissa
...
näitä
...
on
...
kaksi,
...
joita
...
vastaavat
...
avainsanat
...
while
...
ja
...
for.
...
Avainsana while kuvaa toistorakennetta,
...
jota
...
suoritetaan
...
niin
...
kauan
...
kuin
...
tietty
...
ehto
...
täyttyy.
...
Yleensä
...
ehdossa
...
vertaillaan
...
jotain
...
muuttujaa,
...
jota
...
muutetaan
...
while
...
rakenteen
...
koodissa.
...
Jos
...
vertailu
...
on
...
heti
...
alussa
...
epätosi,
...
while
...
rakenteen
...
koodia
...
ei
...
suoriteta
...
olenkaan.
Tämä esimerkki kysyy käyttäjältä vastausta kysymykseen kunnes käyttäjä antaa oikean vastauksen.
Code Block |
---|
Tämä esimerkki kysyy käyttäjältä vastausta kysymykseen kunnes käyttäjä antaa oikean vastauksen. {code} answer = input("Paljon on 2 + 2?\n") while answer != "4" and answer != "neljä": answer = input("Ei... yritä uudestaan.\n") print("Arvasit oikein!") input("\nPaina Enter näppäintä lopettaaksesi...") {code} |
Toinen
...
toistorakenne
...
saadaan
...
avainsanalla
...
for.
...
Sen
...
tarkoituksena
...
on
...
tehdä
...
toistorakenne,
...
jonka
...
koodi
...
suoritetaan
...
tietty
...
määrää.
...
Tälle
...
rakenteelle
...
määritellään
...
myös
...
tunniste
...
muuttujalle,
...
joka
...
kuvaa
...
toistokertaa,
...
jonka
...
jälkeen
...
tulee
...
avainsana
...
in
...
ja
...
jokin
...
kokoelma,
...
jonka
...
jokaista
...
alkiota
...
kohti
...
for
...
rakenteen
...
koodi
...
suoritetaan.
Kokoelmaksi käy mikä tahansa kokoelma kuten monikko tai merkkijono. Tässä ohjelmassa käyttäjältä kysytään tekstiä, jonka jokainen merkki tulostetaan omalle rivilleen.
Code Block |
---|
Kokoelmaksi käy mikä tahansa kokoelma kuten monikko tai merkkijono. Tässä ohjelmassa käyttäjältä kysytään tekstiä, jonka jokainen merkki tulostetaan omalle rivilleen. {code} s = input("Anna tekstiä: ") for c in s: print(c) input("\nPaina Enter näppäintä lopettaaksesi...") {code} |
Usein
...
käytetään
...
myös
...
sisäänrakennettua
...
funktiota
...
range,
...
joka
...
palauttaa
...
kokoelman
...
numero
...
arvoja.
...
Yhdellä
...
parametrilla
...
funktio
...
ottaa
...
kokonaisluvun,
...
jolloin
...
paluuarvona
...
on
...
numerot
...
0;sta
...
annettuun
...
lukuarvoon
...
asti
...
(lukuarvoa
...
itseään
...
mukaan
...
lukematta).
...
Kaksi
...
parametria
...
antamalla
...
määritellään
...
alkuarvo
...
ja
...
loppuarvo.
...
Vielä
...
kolmannen
...
parametrin
...
lisäämällä
...
saadaan
...
määriteltyä
...
yksittäisten
...
arvojen
...
arvoväli.
Tämä ohjelma kysyy käyttäjältä kokonaislukua - while rakenteessa kunnes syöte on sopiva - ja laskee sitten annetun luvun kertoman.
Code Block |
---|
Tämä ohjelma kysyy käyttäjältä kokonaislukua - while rakenteessa kunnes syöte on sopiva - ja laskee sitten annetun luvun kertoman. {code} s = "" while not s.isnumeric(): s = input("Anna positiivinen kokonaisluku: ") x = int(s) y = 1 for i in range(1, x): y *= i print("Antamasi luvun kertoma oli...\n%s" % y) input("\nPaina Enter näppäintä lopettaaksesi...") {code} |
Pythonissa
...
on
...
myös
...
useita
...
avainsanoja
...
toistorakenteiden
...
hallintaan.
...
Yksi
...
näistä
...
on
...
break,
...
joka
...
antaa
...
vaihtoehtoisen
...
tavan
...
poistua
...
toistorakenteesta.
...
Toistorakenteiden
...
ollessa
...
sisäkkäin
...
break
...
poistuu
...
vain
...
yksittäisestä
...
rakenteesta
...
-
...
ei
...
kaikista.
Tämä ohjelma kysyy käyttäjältä numeroita toistorakenteessa ja poistuu avainsanan break avulla, jos käyttäjä syöttää tekstiä. Tässä esimerkissä ohjelma pysyy ilman break käskyä while rakenteessa koska True;n arvo on aina True.
Code Block |
---|
Tämä ohjelma kysyy käyttäjältä numeroita toistorakenteessa ja poistuu avainsanan break avulla, jos käyttäjä syöttää tekstiä. Tässä esimerkissä ohjelma pysyy ilman break käskyä while rakenteessa koska True;n arvo on aina True. {code} while True: s = input("Anna positiivinen kokonaisluku: ") if not s.isnumeric(): print("Et antamasi arvo ei ollut numero...") break input("\nPaina Enter näppäintä lopettaaksesi...") {code} |
Avainsana
...
else
...
toimii
...
Pythonissa
...
myös
...
toistorakenteiden
...
yhteydessä.
...
Toistorakenteissa
...
else
...
osio
...
suoritetaan,
...
jos
...
toistorakenteesta
...
poistutaan
...
normaalisti
...
eli
...
ilman
...
avainsanaa
...
break.
...
Tässä
...
ohjelma
...
tulostaa
...
numeroita
...
10
...
-
...
0
...
ja
...
kysyy
...
lopetetaanko;
...
jos
...
lopettamalla
...
poistutaan
...
break
...
käskyllä
...
ja
...
antamalla
...
laskennan
...
kulua
...
loppuun,
...
poistutaan
...
normaalisti.
Code Block |
---|
} for i in range(10, 0, -1): s = input(str(i) + "... Lopetetaanko? (kirjoita L)") if s == 'L': print("Poistutaan break;llä") break else: print("Poistutaan normaalisti") input("\nPaina Enter näppäintä lopettaaksesi...") {code} |
Vielä
...
on
...
avainsana
...
continue,
...
jonka
...
avulla
...
voidaan
...
toistorakenteessa
...
siirtyä
...
seuraavaan
...
toistokertaan
...
suorittamatta
...
sen
...
jälkeen
...
tulevaa
...
koodia.
...
Tämä
...
ohjelma
...
laskee
...
numeroiden
...
jakojäännökset,
...
jos
...
numero
...
ei
...
ole
...
jaollinen
...
jakajalla.
Code Block |
---|
} denominator = 3 for i in range(50): if i % denominator: continue print("%s / %s = %s" % (i, denominator, i // 3)) input("\nPaina Enter näppäintä lopettaaksesi...") {code} |