CHEM-A2600 - Kemiantekniikan ohjelmointikurssi, Luento-opetus, 5.9.2022-2.12.2022
Kurssiasetusten perusteella kurssi on päättynyt 02.12.2022 Etsi kursseja: CHEM-A2600
Python-oppimateriaali (CHEM-A2600)
if-elif-else -ehtolauseet ja vertailuoperaattorit
if-ehtolauseen avulla ohjataan ohjelman suoritusta haluttuun suuntaan. if-ehtolauseen lyhyempi muoto on if-else:
if EHTO: jos EHTO toteutuu, suoritetaan tässä sisennetty koodi else: jos EHTO ei toteudu, suoritetaan tässä sisennetty koodi
if-ehtolauseen pidempi muoto on if-elif-else:
if EHTO1:
jos EHTO1 toteutuu, suoritetaan tässä sisennetty koodi
elif EHTO2:
jos EHTO1 ei toteudu, mutta EHTO2 toteutuu, suoritetaan tässä sisennetty koodi
else:
jos EHTO1 tai EHTO2 ei toteudu, suoritetaan tässä sisennetty koodi
Huomaa sisennykset: Pythonissa sisennykset ovat tärkeässä roolissa ja yllä olevat ehtolauseet eivät toimi, jos niitä ei ole sisennetty oikein.
Käydään ensin läpi ehtolauseissa käytettyjä vertailuoperaattoreita, jonka jälkeen siirrytään käytännön esimerkkeihin.
Vertailuoperaattorit
Ehtolauseissa käytetään hyvin usein vertailuoperaattoreita:
Operaattori | Vertailuoperaattorin merkitys | Esimerkkejä ehtolauseessa |
---|---|---|
== | Yhtä suuri kuin | if numero == 1000: if nimi == "Tytti": |
!= | Erisuuri kuin | if hinta != 10: if vierailija != "Loiri": |
> | Suurempi kuin | if massa > 55.5: |
< | Pienempi kuin | if lampotla < 0.0: |
>= | Suurempi tai yhtä suuri kuin | if paine >= 32: |
<= | Pienempi tai yhtä suuri kuin | if tilavuus <= 24: |
if-else
Tarkastellaan esimerkkiohjelmaa:
luku = int(input("Anna kokonaisluku:\n")) if luku >= 0: print("Antamasi luku on suurempi tai yhtä suuri kuin nolla") else: print("Antamasi luku on pienempi kuin nolla")
Esimerkkisuoritus:
Anna kokonaisluku: > 5 Antamasi luku on suurempi tai yhtäsuuri kuin nolla
Toinen esimerkkisuoritus eri syötteellä:
Anna kokonaisluku:
> -222
Antamasi luku on pienempi kuin nolla
if-ehtolauseita voi olla useita sisäkkäin. Huomaa sisennysten käyttö tässä esimerkkiohjelmassa:
luku = int(input("Anna kokonaisluku:\n")) if luku >= 0: print("Antamasi luku on suurempi tai yhtäsuuri kuin nolla") if luku > 1000: print("Se on jopa suurempi kuin 1000") else: print("Se on kuitenkin enintään 1000") else: print("Antamasi luku on pienempi kuin nolla")
Esimerkkisuoritus:
Anna kokonaisluku: > 999 Antamasi luku on suurempi tai yhtäsuuri kuin nolla Se on kuitenkin enintään 1000
Ensimmäinen ehto "luku >= 0" siis toteutui, mutta ensimmäisen ehtolauseen sisällä oleva ehto "luku > 0" ei toteutunut.
if-elif-else
Ehtolauseeseen voi myös lisätä mielivaltaisen määrän lisäehtoja elif-käskyllä:
luku = int(input("Anna kokonaisluku: ")) if luku > 1000: print("Antamasi luku on suurempi kuin tuhat") elif luku > 100: print("Antamasi luku on suurempi kuin sata") elif luku > 10: print("Antamasi luku on suurempi kuin kymmenen") elif luku >= 0: print("Antamasi luku on välillä 0..10") else: print("Antamasi luku on pienempi kuin nolla")
else-osio ei ole pakollinen:
kuukausi = input("Mikä kuukausi nyt on?\n") if kuukausi == "joulukuu": print("Joulu tulla jolkottaa") elif kuukausi == "elokuu": print("Vielä on kesää jäljellä")
Lisätietoja: Liukulukujen yhtäsuuruuden vertailu
Huom! Liukulukujen yhtäsuuruuden vertailun kanssa pitää olla tarkkana! Yhtäsuuruuden vertailu on parasta tehdä math.isclose-funktiolla. Palaamme tähän asiaan 2. kierroksen oppimateriaalissa.