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 < 10n toteutuu, tulostetaan ruudulle teksti Luku on pienempi kuin 10 ja poistutaan rakenteesta. Muistetaan, että Pythonissa sisennys on osa syntaksia: se määrittää, mitkä rivit kuuluvat samaan koodilohkoon. Samalla sisennystasolla olevat rivit kuuluvat samaan lohkoon. Tässä esimerkissä
if-lauseen ehdon toteutuessa suoritetaan siihen kuuluva sisennetty koodilohko, ja sama pätee rakenteen muihin haaroihin.Eri ohjelmointikielissä erot ovat pääasiassa syntaktisia. Ehtorakenne perustuu
if-haaraan, ja se voi sisältää myös muita ehdollisia haaroja sekä valinnaisen lopullisen else-haaran. Pythonissa muut ehdolliset haarat kirjoitetaan elif-lauseilla. Haaroja tarkastellaan kirjoitetussa järjestyksessä ja valitaan ensimmäinen haara, jonka ehto 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
andlooginen jaorlooginen tainotlooginen 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("Yhteenlasku lopetetaan numerolla 0")
while a != 0:
print("summa:", s)
a = int(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?