Ennen kuin aloitamme ehtorakenteista, niin käydään läpi muuttujien vertailuoperaattorit. Vertailuoperaattorit ovat merkkejä, joita käytetään vertailemaan kahta arvoa keskenään. Vertailuoperaattorit palauttavat totuusarvon True
tai False
sen mukaan, onko vertailu tosi vai epätosi.
Pythonissa käytettävät vertailuoperaattorit ovat seuraavat:
Operaattori | Kuvaus | Esimerkki | Tulostus |
---|---|---|---|
== | Yhtäsuuruus | 5 == 5 | True |
!= | Eriarvoisuus | 5 != 3 | True |
> | Suurempi kuin | 5 > 3 | True |
< | Pienempi kuin | 3 < 5 | True |
>= | Suurempi tai yhtäsuuri | 5 >= 5 | True |
<= | Pienempi tai yhtäsuuri | 3 <= 5 | True |
Eli esimerkiksi <
-operaattori palauttaa True
, jos vasemmanpuoleinen arvo on pienempi kuin oikeanpuoleinen arvo. Muuten se palauttaa False
.
Testataan tätä alla olevalla ohjelmalla:
# Määritellään muuttujat
a = 5
b = 3
print(a < b)
Tulostaa seuraavanlaisesti:
Konsoli
Esimerkkitulostus
False
Yksinkertainen vertailu
Pisteet: 0 / 10
Tee ohjelma, joka käyttää jotain vertailuoperaattoria ja tulostaa näytölle True
.
Kirjoita ohjelmasi alle ja tarkista se "Suorita" painikkeella:
Konsoli
Ehtorakenteet ovat ohjelmoinnin perus komentoja, joiden avulla voidaan ohjata ohjelman suoritusjärjestystä. Pythonissa käytetään if
, elif
ja else
-komentoja.
Tarkastellaan seuraavaksi ohjelmaa:
# Kysytään käyttäjältä ikä
ika = int(input("Kuinka vanha olet?"))
# Tarkistetaan onko käyttäjä täysi-ikäinen
if ika >= 18:
print("Olet täysi-ikäinen.")
Ohjelma kysyy käyttäjältä ikää ja tarkistaa onko käyttäjä täysi-ikäinen. Jos käyttäjä on täysi-ikäinen, niin ohjelma tulostaa Olet täysi-ikäinen.
Muussa tapauksessa ohjelma ei tulosta mitään. Huomasitko miten muodostimme ehdon? Käytimme if
-komentoa ja vertailuoperaattoria >=
tutkimaan onko käyttäjän ikä suurempi tai yhtäsuuri kuin 18. Tässä on tärkeä huomata, että ehto tulee aina if
-komenton jälkeen ja ehto tulee sulkea kaksoispisteillä :
.
Se mitä ehdon jälkeen tulee suorittaa, tulee sisentää tabulaattorilla.
Lisätään vielä edelliseen ohjelmaan tulostus, jos käyttäjä ei ole täysi-ikäinen:
# Kysytään käyttäjältä ikä
ika = int(input("Kuinka vanha olet?"))
# Tarkistetaan onko käyttäjä täysi-ikäinen
if ika >= 18:
print("Olet täysi-ikäinen.")
else:
print("Olet alaikäinen.")
Saimme ohjelman tulostamaan Olet alaikäinen.
, jos käyttäjä ei ole täysi-ikäinen. Tämä tapahtuu else
-komennolla, joka suoritetaan, jos if
-ehdon tulos on False
. Voit ajatella tämän olevan komento, joka suoritetaan, jos mikään muu ehto ei ole tosi.
Lisätään vielä ohjelmaan ehto, joka tutkii onko käyttäjä alle 7-vuotias:
# Kysytään käyttäjältä ikä
ika = int(input("Kuinka vanha olet?"))
# Tarkistetaan onko käyttäjä alle 7-vuotias
if ika < 7:
print("Olet alle 7-vuotias.")
elif 7 <= ika < 18:
print("Olet koululainen.")
else:
print("Olet täysi-ikäinen.")
Tässä ohjelmassa käytimme elif
-komentoa, jota voidaan käyttää if
-komennon jälkeen tutkimaan uutta ehtoa, joka suoritetaan kun edellinen if
-ehdon tulos on False
ja elif
-ehdon tulos on True
. Voit käyttää elif
-komennon jälkeen useita elif
-komentoja, jos haluat tutkia useampia ehtoja. Huomaa kuitenkin, että if
komento on aina ensimmäinen ja niitä voi olla vain yksi. Vastaavasti else
-komennon tulee olla aina viimeisenä ja se suoritetaan, jos mikään muu ehto ei ole tosi.
Tehdään vielä esimerkiksi ohjelma, joka tarkistaa käyttäjän iän ja tulostaa sen mukaisesti onko käyttäjä lapsi (0 - 12 v), nuori (13 - 17 v), nuori aikuinen (18 - 22 v) vai aikuinen (23 v ->):
# Kysytään käyttäjältä ikä
ika = int(input("Kuinka vanha olet?"))
# Tarkistetaan onko käyttäjä lapsi
if ika >= 0 and ika <= 12:
print("Olet lapsi.")
elif ika >= 13 and ika <= 17:
print("Olet nuori.")
elif ika >= 18 and ika <= 22:
print("Olet nuori aikuinen.")
else:
print("Olet aikuinen.")
Huomasitko käytimme tässä and
-operaattoria, joka tarkoittaa, että molempien ehtojen tulee olla tosia, jotta koko ehto on tosi. Voit käyttää myös or
-operaattoria, joka tarkoittaa, että jomman kumman ehtoista tulee olla tosi, jotta koko ehto on tosi.
Esimerkiksi:
print(5 < 10 and 10 > 5)
Tulostaa seuraavanlaisesti:
Konsoli
Esimerkkitulostus
True
Sillä molemmat ehdot ovat tosia (5 on pienempi kuin 10 ja 10 on suurempi kuin 5).
print(5 < 10 or 10 < 5)
Tulostaa seuraavanlaisesti:
Konsoli
Esimerkkitulostus
True
Sillä toinen ehto on tosi (5 on pienempi kuin 10).
Ensimmäinen ehto tehtävä
Pisteet: 0 / 10
Tee ohjelma, joka kysyy käyttäjältä luvun ja tulostaa näytölle True
, jos luku on suurempi kuin 10 ja False
, jos luku on pienempi tai yhtäsuuri kuin 10.
Kirjoita ohjelmasi alle ja tarkista se "Suorita" painikkeella:
Konsoli