Tunti 7 Vertailuoperaattorit
Asioiden vertaaminen keskenään ohjelmoinnissa
Seuraavalla videolla kerrotaan vertailuoperaattoreista:
Kuulostaako lauseke 1 > 2 (yksi on suurempi kuin kaksi) järkevältä? Ohjelmoinnissa vastaavaa vertailua tulee usein eteen. Monessa tilanteessa tietokoneiden tulee tarkistaa esimerkiksi henkilön ikä. Jos iäksi annetaan esimerkiksi -10 tai 250 vuotta, niin tietokoneen tulee tietää, että luku ei ole mahdollinen. Ohjelmoinnissa vastaavia tilanteita käsitellään vertailun ja ehtolausekkeiden avulla. Kokeile esimerkiksi seuraavaa ohjelmaa, mitä se tulostaa?
print(1>2)
* Esimerkki 1.* Kokeile annetun epäyhtälön tulostamista.
Ohjelma ei tulostanutkaan "erroria", vaan False. Eli epätosi. False tarkoittaa ohjelmoinnissa yksinkertaisesti sitä, että tietokoneelle kerrottu asia ei ollut totta. Jos laittaisi print -komennon sisään totta olevan epäyhtälön, esimerkiksi print(1<2), niin kone tulostaa True. Truella tai Falsella ei suoraan ole käyttöä, mutta näitä voidaan käyttää apuna seuraavanlaisessa tilanteessa. Esimerkiksi tietokone voi tarkistaa henkilön iän ja jos se on alle 13 vuotta, niin laite voi estää henkilön pääsyn vaikkapa Whatsapin käyttäjäksi.
Seuraavaksi esitellään yleisimmät vertailuoperaattorit. Osa on jo matematiikasta tuttuja.
Operaattori | Mitä se tekee |
== | verrataan ovatko kaksi asiaa yhtä suuria tai samoja (esim. 4 == 4 on True) |
!= | verrataan ovatko kaksi asiaa eri suuria (esim. 4 != 5 on True) |
> | verrataan onko vasemmalla oleva suurempi kuin oikealla (esim. 4 > 6 on False) |
< | verrataan onko vasemmalla oleva pienempi kuin oikealla (esim. 4 < 6 on True) |
>= | verrataan onko vasemmalla oleva suurempi tai yhtä suuri kuin oikealla oleva (esim. 4 >= 4 on True) |
<= | verrataan onko vasemmalla oleva pienempi tai yhtä suuri kuin oikealla oleva (esim. 4 >= 5 on False) |
Pythonissa voi vertailla keskenään monia erilaisia asioita, toisin kuin monessa muussa ohjelmointikielessä.
Kokeile print -komennolla ja vertaile lukujen ja tekstien suuruuksia ylläolevilla komennoilla. Esim.
print(2> -1)
print("joo-o" > "juu")
Miten python vertaa tekstejä keskenään? Kokeile hetki ja yritä keksiä asia. Miksi alla oleva ohjelma ei toimi? Miksi ohjelma voi verrata "aaa" < "bbb", mutta jos vertaa aaa < bbb, ohjelma valittaa virheestä?
* Esimerkki 2.* Kokeile editorissa edellä annettuja komentoja.
<> Tehtävä 1. Kokeile tehdä ohjelma, joka kysyy lukua, vertaa sitä jo ennalta annettuun toiseen lukuun (luo toinen muuttuja) ja tulostaa True tai False.
<> Tehtävä 2. Kokeile tehdä ohjelma, joka kysyy kaksi lukua kahdella eri input -komennolla ja tulostaa True jos ensimmäinen niistä oli suurempi.
<> Tehtävä 3. Tee ohjelma, joka käyttää vertailuun joko == tai != -operaattoria.
<> Tehtävä 4. Tee ohjelma, joka kysyy kahta sanaa, vertaa niitä toisiinsa ja tulostaa True jos ensimmäinen sanoista oli suurempi.