Joskus halutaan, että tietty koodipätkä suoritetaan vain, jos tietty ehto toteutuu. Tämän toteuttamiseen käytetään if-lausetta:

if ika < 0:
    print("ikä ei voi olla pienempi kuin 0!")

Usein näissä lauseissa vertaillaan kahta numeroa. Tämä onnistuu näillä merkeillä:

Jos if-lauseen ehto on tosi, niin sen sisällä oleva koodi suoritetaan. Ehdoksi voi myös antaa muuttujan.

If-lauseelle voi myös antaa monta ehtoa. Ehtoja voi ketjuttaa näillä sanoilla:

Näitä käytetään esimerkiksi näin:

if pelaajan_elamat == 0 and not kuolematon_pelaaja:
    lopeta_peli()

Jos ehtoja on monta ja niiden ryhmittely saattaa jäädä epäselväksi, niin kannattaa laittaa yhteen kuuluvat ehdot sulkujen sisään.

Tässä esimerkissä näkyy, miten ehtojen sarjasta saa vaiheittain ratkaistua totuusarvon:

numero1 = 6
numero2 = 100
numero3 = -50
totuus1 = True
totuus2 = False

(((numero1 > 7) or totuus1) or ((numero2 * 3 < 400) and totuus2)) and numero3 == -50
↓
(((6 > 7) or totuus1) or ((300 < 400) and totuus2)) and -50 == -50
↓
((False or True) or (True and False)) and True
↓
(True or False) and True
↓
True and True
↓
True

Siis jos tämä ehtojen sarja olisi laitettu if-lauseen ehdoksi, niin ehtolauseen sisäinen koodi olisi suoritettu, koska ehto oli tosi. If-lauseet siis toimivat näin:

if True:
    print("Tämä tulostetaan")
if False:
    print("Tätä ei tulosteta")

If, elif ja else

Usein halutaan määritellä myös, mitä tapahtuu, jos jokin ehto ei toteudu. Tähän voi käyttää if-else-rakennetta:

if numero % 2 == 1:
    print("pariton luku")
else:
    print("parillinen luku")

Else-rakennetta ei voi käyttää ilman edeltävää if-rakennetta.

Vaihtoehtoja voi olla myös enemmän kuin 2. Tähän käytetään if-elif-else-rakennetta:

if ehto:
    print("ensimmäinen ehto toteutui")
elif ehto2:
    print("ensimmäinen ehto ei toteutunut, mutta toinen ehto toteutui")
elif ehto3:
    print("ensimmäinen tai toinen ehto ei toteutunut, mutta kolmas ehto toteutui")
else:
    print("mikään ehto ei toteutunut")

Elif on lyhenne sanoista else if. Elif korvaa monimutkaisemman rakenteen, jossa vaihtoehtoisia if-lauseita tehdään else-rakenteen sisään:

if ehto:
    print("ensimmäinen ehto toteutui")
else:
    if ehto2:
        print("ensimmäinen ehto ei toteutunut, mutta toinen ehto toteutui")
    else:
        if ehto3:
            print("ensimmäinen tai toinen ehto ei toteutunut, mutta kolmas ehto toteutui")
        else:
            print("mikään ehto ei toteutunut")

Kun käytetään if-elif-else-rakennetta, täytyy muistaa, että vain yksi näistä lauseista voi toteutua. Jos haluat, että useampia suoritetaan peräkkäin, niin käytä peräkkäisiä tavallisia if-lauseita. Mutta jos haluat, että jonkun toisen if-lauseen sisältämä koodi suoritetaan vain, jos ensimmäistä if-lausetta ei suoriteta, niin tee if-elif(-else)-rakenne.