Tunti 9 Ehtolauseet, osa 2

Lisää ehtolauseista

Tässä vaiheessa tutustumme elif -komentoon, jolla saa ketjutettua ehtoja. Se on yhdistelmä else ja if -komennoista. "tai-jos" voisi olla sopiva suomennos. Jos ensimmäinen if ei ole totta, ohjelma siirtyy seuraavalle riville ja kokeilee elif:iä. Jos sekään ei ole totta, ohjelma etsii seuraavan elif:in tai else -komennon ja katsoo ovatko ne tosia. Peräkkäiset if -komennot taas eivät liity toisiinsa, vaan ohjelma tarkastelee ne kaikki erillisinä. Jos if -komennon perään laittaa else:n tai elif:in, niin ne ovat samassa if:n kanssa.

Katsotaan miten tuo elif toimii. Palataan edellä olleeseen tehtävään, jossa pyydettiin tekemään kysely henkilön iästä ja sen perusteella ohjelman ilmoittavan onko henkilö nuori vai aikuinen jne. Jos tämän tekee pelkällä if -komennolla niin voi seurata ongelmia, ellei sitä tee todella tarkasti. Yksi vaihtoehto on miettiä mistä suunnasta aloittaa. Tällä tarkoitetaan sitä, aloittaako ohjelma aluksi tutkimaan sitä, onko henkilö alle 0 vuotta. Tämäkin vaihtoehto pitää ottaa huomioon, koska ihmisillä on tapana hassutella kyselyissä. Alla on siitä esimerkki. 

* Esimerkki 1.* Kysely if -komennolla.


Ohjelmia kannattaa aina tehdä vaiheittain. Tekee ensin pienen palasen ja sitten jatkaa eteenpäin. Kokeillaan ohjelmaa ja tämän jälkeen siirrytään seuraavaan vaiheeseen. Lisätään elif -komennolla ehto, että henkilö on alle 18. 

* Esimerkki 2.* Ehdon lisääminen kyselyyn.


Toistaiseksi näyttää toimivan hyvin. Lisätään seuraavaksi toinen elif -komento, jossa testataan onko henkilö alle 65, eli aikuinen. 

* Esimerkki 3.* Lisätään ehtoja kyselyyn. Huomaa kaksoispisteet ehtolauseiden perässä.


Edelleen näyttää toimivan. Ohjelmia kannattaa kokeilla toimivatko ne erilaisilla arvoilla. Tässä esimerkiksi tulisi ongelmia, jos käyttäisi elif -komennon sijaan pelkkää if -komentoa, joka on ihan mahdollista ja joissakin tapauksissa parempi vaihtoehto. Jos elif:in tilalle laittaa if ja kokeilee ohjelmaa laittamalla arvoksi vaikka 17. Ohjelma ensin tulostaa, että olet "nuori". Tämän jälkeen ohjelma testaa toista if -komentoa ja huomaa, että sekin on totta ja tulostaa "olet aikuinen". Elif -komento estää tämän.

<> Tehtävä 1.
Kirjoita ohjelma, joka kysyy lukua ja tulostaa vastauksen sen mukaan onko annettu luku suurempi vai pienempi kuin 10.


<> Tehtävä 2.
Kirjoita ohjelma, joka kysyy pelissä saatua pistemäärää. Lisää sitten ainakin 5 elif -lausetta ja tulostusta, millä tasolla pelaaja on saadulla pistemäärällä. Muista lisätä kaksoispisteet ehtolauseiden perään.


<> Tehtävä 3.
Kirjoita ohjelma, joka kysyy käyttäjältä sanan ja tallentaa sen muuttujaan. Ohjelman tulee myös tulostaa käyttäjän antaman sanan pituus ja huomauttaa, jos käyttäjä antaa tyhjän syötteen. len() -funktiolla voidaan tarkastaa muuttujan pituus, mutta se toimii vain string -muuttujille. Siksi allaolevassa ohjelmassa käyttäjän syöte on tarkasti määritelty str -muuttujaksi. Jatka alla olevaa ohjelmaa.


Lisätehtävä.
Tee ylläolevaa tehtävää vastaava ohjelma, joka myös tarkastaa sisältääkö käyttäjän antama syöte numeroita.

Osaatko?

Mitä ohjelma tulostaa?
luku = 7
if luku <10:
____print("Kohta on Joulu")
if luku < 20:
____print("Kohta on Uusi Vuosi")
else:
____print("Pääsiäistä odotellessa")




Roskapostituksen esto
Valitse mikä tahansa numero, joka on suurempi kuin 2.

Peda.net käyttää vain välttämättömiä evästeitä istunnon ylläpitämiseen ja anonyymiin tekniseen tilastointiin. Peda.net ei koskaan käytä evästeitä markkinointiin tai kerää yksilöityjä tilastoja. Lisää tietoa evästeistä