Ohjausrakenteet Pythonissa¶
Tässä materiaalissa palautellaan mieleen Pythonin ehto- ja silmukkarakenteet.
Ehtorakenteet¶
Ehtorakenteiden avulla ohjelman suoritus voi vaihdella sen mukaan, mitä tietoja sille kulloinkin annetaan. Eli ehtorakenteilla testataan annetun ehdon totuusarvo ja toimitaan sen mukaan ohjelmassa.
if luku < 10:
print("Luku on pienempi kuin 10")
elif luku < 100:
print("Luku on pienempi kuin 100")
elif luku < 1000:
print("Luku on pienempi kuin 1000")
else:
print("Luku on yhtä suuri tai suurempi kuin 1000")
Yllä siis, jos ehto
luku < 10
n toteutuu, tulostetaan ruudulle teksti Luku on pienempi kuin 10
ja poistutaan rakenteesta. Muistetaan Pythonissa luettavuutta edistävä sisennys, jolla liitetään (samalle tasolle) loogisesti toisiinsa liittyvät koodirivit koodilohkoksi. Eli nyt if-lauseen ehdon toteutuessa suoritetaan siihen sisennyksellä liitetty koodilohko, jne.
Eri ohjelmointikielissä erot ovat kosmeettisia, rakenteissa ovat aina if-, elif- ja else-lauseet jossakin muodossa, jotka muodostavat ehtorakenteen haarat. Näistä eri haaroja tarkastellaan kirjoitetussa järjestyksessä ja valitaan se ehto, joka ensimmäisenä toteutuu.
Okei, no miten ehtolauseen totuusarvo sitten selvitetään?
- Käyttämällä vertailuoperaattoreita
==
yhtäsuuri!=
erisuuri>
suurempi kuin>=
yhtäsuuri tai suurempi kuin<
pienempi kuin<=
yhtäsuuri tai pienempi kuin- Käyttämällä loogisia operaattoreita
and
looginen jaor
looginen tainot
looginen negaatio
Esimerkki. Tässä kysytään käyttäjältä valintaa eri laskutoimitusten välillä ja suoritetaan valittu toiminto. else-lausekkeella ilmoitetaan virhetilanteesta, kun mikään ehdoista ei toteutunut.
valinta = input("Tee valintasi: ").strip().lower()
if valinta == "p" or valinta == "pituus":
pituus()
elif valinta == "m" or valinta == "massa":
massa()
elif valinta == "t" or valinta == "tilavuus":
tilavuus()
elif valinta == "l" or valinta == "lämpötila":
lampotila()
else:
print("Valitsemaasi toimintoa ei ole olemassa")
Ehdollista toistoa¶
Tuttu
while-lause
toistaa silmukassa olevaa koodilohkoaan niin kauan kuin ehtolause
on totta. Silmukan yleisin käyttö Ohjelmoinnin alkeissa oli erinäisten syötteiden tarkistimessa ja uudelleenkysymisessä, koska while-silmukka sopii parhaiten tilanteisiin joissa toistojen lukumäärää ei tiedetä ennalta. Esimerkki.
a = 1
s = 0
print 'Anna yhteenlaskettava luku'
print 'Yhteenlaskulopetetaan numerolla 0'
while a != 0:
print 'summa:',s
a = input('yhteenlaskettava: ')
s = s + a
print 'Kokonaissumma =',s
Numeroitua toistoa¶
Numeroitu toisto toteutetaan
for-silmukalla
, jolla käydään läpi iteroitava
objekti (esim. lista) tai jokin numeroitu alue range()-funktiolla.kukat = ['Ruusu', 'Orvokki', 'Auringonkukka']
for kukka in kukat:
print kukka
Ja..
for i in range(0,10): print i
Tässä i on
silmukkamuuttuja
. Jos muistat missä i ja kumppanit yleensä esiintyivät Ohjelmoinnin alkeissa, saatat muistaa range-silmukan: for i in range(0, 10)
(turha 0 lisätty vertailun helpottamiseksi), jolla käydään käpi annettu lukualue.Yleisen for-silmukan peruskäyttö monissa muissa ohjelmointikielissä muistuttaakin paljon tätä range-silmukkaa.
Lopuksi¶
Nyt voidaankin siirtyä selvittämään miten C-kielessä ohjausrakenteet on toteutettu. Luvassa on uutta asiaa, mm. uusia ohjausrakenteita..
Anna palautetta
Kommentteja materiaalista?