Tietokoneiden näyttöjä, joissa näkyy kuvaa automaatiolaboratorion laitteistosta. Monitoreiden takana näkyy sama laitteisto kuin kuvissa.

timohei.net / Opintojaksot / Opintojaksot / Älykkään sähkölaitteen projekti / Python-ohjelmointi /
Ehtolauseet, loogiset operaatiot

Pythonissa käytetään ehtolausekkeissa matematiikasta tuttuja loogisia ehtoja. Ne merkitään Pythonissa seuraavasti:

Yhtäsuuri kuina == b
Erisuuri kuina != b
Pienempi kuina < b
Pienempi tai
yhtäsuuri kuin
a <= b
Suurempi kuina > b
Suurempi tai
yhtäsuuri kuin
a >= b

if

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

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

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")

Sisäkkäinen if

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.")

Yhden rivin if

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")

Yhden rivin if ... else

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")

pass

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

Loogiset operaatiot

and

a = 200
b = 33
c = 500
if a > b and c > a:
  print("Molemmat ehdot ovat tosia")

or

a = 200
b = 33
c = 500
if a > b or a > c:
  print("Ainakin yksi ehdoista on tosi")
Päivitetty 28.8.2022

<<  Edellinen
(7) Merkkijonojen käsittely
Sivu 8/13Seuraava >>
(9) Toistorakenteet
© Timo Heikkinen | timo piste heikkinen at oamk piste fi