if-elif-else -ehtolauseet ja vertailuoperaattorit

if-ehtolauseen avulla ohjataan ohjelman suoritusta haluttuun suuntaan. Siitä on kaksi eri muotoa: if-else ja if-elif-else.

if ehto:
    jos ehto on tosi (True) suoritetaan tämä koodi
else:
    jos ehto on epätosi (False), suoritetaan tämä koodi

Huomaa sisennykset: Pythonissa sisennykset ovat tärkeässä roolissa! Ylläoleva koodi ei toimi, jos if-else-rakennetta ei ole sisennetty.

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

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

tulostaa

Anna kokonaisluku:
> 5
Antamasi luku on suurempi tai yhtäsuuri kuin nolla

if-ehtolauseita voi olla useita sisäkkäin (huomaa sisennysten käyttö!):

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

tulostaa

Anna kokonaisluku:
> 999
Antamasi luku on suurempi tai yhtäsuuri kuin nolla
Se on kuitenkin enintään 1000

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 (lisätietoja 2. kierroksen materiaalissa):


Tehtävä 1.6.1

Tehtävä 1.6.2