Ehtolauseet, loogiset operaatiot
458 528 623
Pythonissa käytetään ehtolausekkeissa matematiikasta tuttuja loogisia ehtoja. Ne merkitään Pythonissa seuraavasti:
Yhtäsuuri kuin | a == b |
Erisuuri kuin | a != b |
Pienempi kuin | a < b |
Pienempi tai yhtäsuuri kuin | a <= b |
Suurempi kuin | a > b |
Suurempi tai yhtäsuuri kuin | a >= b |
if eli jos-ehtolause suorittaa jälkeensä tulevan komennon, mikäli ehtolauseke on tosi:
a = 123 b = 234 if b > a: print("b on suurempi kuin a")
Annetuilla arvoilla ehtolauseke b > a antaa tulokseksi True, joten seuraava rivi suoritetaan ja näytölle tulostuu b on suurempi kuin a.
Suoritettavia rivejä voi olla useampikin. Kaikki ehtolausetta välittömästi seuraavat sisennetyt rivit suoritetaan, jos ehto toteutuu.
Huomaa ehtolauseen lopussa oleva kaksoispiste - se on pakollinen!
elif tarkoittaa "else if". Mikäli if-rivin ehto ei toteutunut, elif-rivillä voidaan testata seuraava ehto. elif-ehtorivejä voi olla useita peräkkäin.
a = 123 b = 123 if b > a: print("b on suurempi kuin a") elif a == b: print("a ja b ovat yhtäsuuria")
else-lauseen jälkeinen osuus suoritetaan, jos if- tai mikään elif-lauseista ei toteutunut. Huomaa, että else-riville ei tule ehtolauseketta!
a = 200 b = 100 if b > a: print("b on suurempi kuin a") elif a == b: print("a ja b ovat yhtäsuuria") else: print("a on suurempi kuin b")
if-lauseita voi olla sisäkkäin. Huomaa, että jälkimmäinen if-lauseke kuuluu ensimmäisen sisään, joten sen pitää olla sisennettynä. Jälkimmäisen if-lausekkeen suoritettavat rivit pitää sisentää vielä lisää:
a = 100 if a > 10:.... print("a on suurempi kuin 10").... if a > 20:........ print(" ja suurempi kuin 20.").... else:........ print(", mutta ei suurempi kuin 20.")
Mikäli ehdon toteutuessa tarvitsee suorittaa vain yksi komento, voi käyttää yhden rivin muotoa (short hand if):
a = 100 b = 10 if a > b: print("a on suurempi kuin b")
Myös if ... else-rakenne voidaan toteuttaa yhdellä rivillä:
a = 100 b = 200 print("a on suurempi") if a > b else print("b on suurempi")
else-lausekkeita voi olla useita:
a = 300 b = 300 print("a on suurempi") if a > b else print("a on yhtä suuri kuin b") if a == b else print("b on suurempi")
if-lausekkeessa täytyy olla osa, joka suoritetaan ehdon toteutuessa. Mikäli jostain syystä mitään ei kuitenkaan haluta suorittaa, voidaan suoritusosaan virheilmoituksen välttämiseksi sijoittaa pass-käsky, joka ei tee mitään. Tämä voi olla tarpeen esimerkiksi kun ohjelmaa halutaan testata keskeneräisenä.
a = 100 b = 200 if b > a: pass
a = 200 b = 33 c = 500 if a > b and c > a: print("Molemmat ehdot ovat tosia")
a = 200 b = 33 c = 500 if a > b or a > c: print("Ainakin yksi ehdoista on tosi")