Totuusarvo
Totuusarvo on joko tosi (True) tai epätosi (False):
jokin asia pitää paikkansa tai ei pidä paikkaansa. Esimerkiksi
"pistemäärä on yli 1000" ja "pelaajan nimi ei ole Einari" vastaavat
totuusarvoja, jotka voivat olla ohjelman yhdellä suorituskerralla tosia
ja toisella suorituskerralla epätosia. Jos pelaajalla on 1500 pistettä
ja hänen nimensä on Einari, ensimmäinen totuusarvo on tosi mutta toinen
totuusarvo on epätosi.Totuusarvoja tuottavat vertailut, joissa tarkistetaan, ovatko kaksi lukuarvoa tai merkkijonoa samat tai mikä on niiden suuruusjärjestys tai aakkosjärjestys:
| vertailu | milloin tosi? |
|---|---|
X == Y | X on sama kuin Y |
X != Y | X ei ole sama kuin Y |
X < Y | X on pienempi kuin Y |
X <= Y | X on pienempi tai sama kuin Y |
X > Y | X on suurempi kuin Y |
X >= Y | X on suurempi tai sama kuin Y |
!= sijasta voi käyttää myös merkintää <>.
Jos vertailussa ovat lukuarvot, "pienempi" ja "suurempi" tarkoittavat
lukujen suuruusjärjestystä. Jos vertailussa ovat merkkijonot, "pienempi"
ja "suurempi" tarkoittavat merkkijonojen aakkosjärjestystä, joka
riippuu siitä, missä järjestyksessä merkit ovat käytetyssä merkistössä.- Anna muuttujille "nimi" ja "vuosi" eri arvot ja tulosta totuusarvoja erilaisista vertailuista. Kts. koodi lopussa.
nimi != "Antti", vuosi >= 1672 ja nimi > "Antti" ovat tosia, koska nimi ei ole Antti, vuosi on ainakin 1672 ja nimi on aakkosissa Antin jälkeen. Vertailut vuosi == 1726 ja vuosi < 1600 ovat epätosia, koska vuosi ei ole 1726 ja vuosi ei ole myöskään alle 1600.
Useamman vertailun voi tehdä myös peräkkäin, jolloin tulos on tosi, jos kaikki yksittäiset vertailut toteutuvat.
- Anna muuttujille a ja b arvot ja vertaile niitä vertailuilla seuraavasti
0 < 1 < 2on tosi, koska0 < 1on tosi ja1 < 2on tosi. Vertailua < b < 1on epätosi, koskab < 1on epätosi. Vertailua < b == 0on tosi, koskaa < bon tosi jab == 2on tosi. (Kts.koodi)
Ehtorakenne
Ehtorakenne muuttaa ohjelman suoritusta sen mukaan, onko jokin totuusarvo tosi vai epätosi eli pitääkö jokin ehto paikkansa vai ei. Seuraava ohjelma tervehtii käyttäjää vain, jos hänen nimensä on Ehtorakenteen aloittaaif-sana, jonka jälkeen tulee
totuusarvomuotoinen ehto. Jos ehto on tosi, ohjelma suorittaa
ehtorakenteen sisällä olevat rivit. Muuten ohjelma hyppää ehtorakenteen
yli. Tässä ehto on tosi, jos nimi on Henrikki, ja muuten epätosi.'- Tee ohjelma, joka tervehtii käyttäjää vain jos hänen nimensä on Henrikki.
Nimi: Antti
Ei muuta...Nimi: Henrikki Hoi, sankari! Minne matka? Ei muuta...
Python tunnistaa ehtorakenteen sisällä olevat rivit siitä, että ne on sisennetty eli niiden edessä on ylimääräistä tyhjää. Ohjelmoijan päätettävissä on, kuinka paljon tyhjää rivien edessä on, kunhan kaikkien ehtorakenteessa olevien rivien edessä on yhtä paljon tyhjää.
Lisää ehtoja
Seuraava ohjelma tervehtii Henrikkiä eri tavoin kuin muita. Ohjelma sanoo Henrikille "Hoi, sankari!" ja kaikille muille "Hellurei!". Nyt ehtorakenteen loppuun lisätäänelse-osa, jonka ohjelma suorittaa, jos alussa oleva ehto ei ole tosi.Tässä ovat ohjelman erilaiset tulostukset:
Nimi: Henrikki Hoi, sankari!Nimi: Antti Hellurei!
Sitten ehtorakenteen laajin muoto: Ohjelma suorittaa ensimmäisen
if- tai elif-osan, jota vastaava ehto on tosi. Jos mikään ehto ei ole tosi, ohjelma suorittaa else-osan.- Seuraava ohjelma tekee omat tervehdykset Henrikille, Antille ja Uoleville. Kaikkia muita ohjelma tervehtii samalla tavalla.
Nimi: Henrikki Hoi, sankari!
Nimi: Antti Morjens!
Nimi: Uolevi Tsaukki!
Ehtorakenteesta voi aina puuttuaNimi: Justiina Hellurei!
else-osa, jolloin ohjelma ei tee mitään, jos mikään ehto ei ole tosi.Totuusarvojen yhdistys
Totuusarvoja voi yhdistää toisiinsa seuraavin merkinnöin:| yhdistys | milloin tosi? |
|---|---|
A and B | A on tosi ja B on tosi |
A or B | A on tosi tai B on tosi |
not A | A ei ole tosi |
and avulla voi tarkistaa, päteekö monta ehtoa yhtä aikaa, ja yhdistyksen or avulla voi tarkistaa, päteekö ainakin yksi ehdoista.- Seuraavan ohjelman pitäisi tarkistaa, ovatko käyttäjän tunnus ja salasana oikein: Ohjelma tulostaa "Oikein!", jos tunnus on "antti" ja salasana on "abc".
- Seuraavaksi tee ohjelma, joka tarkistaa käyttäjän iän ja tulostaa "Mahdotonta!", jos käyttäjä on alle 0 vuotta tai yli 120 vuotta.
Jos totuusarvo on monimutkainen, sulkujen avulla voi varmistaa, että Python tulkitsee sen oikein. Esimerkiksi on vaikeaa tietää, miten Python tulkitsee totuusarvon
tunnus == "antti" and salasana == "abc" or suojaus == 0. Sulkujen avulla pystyy erottamaan mahdolliset tulkinnat:(tunnus == "antti" and salasana == "abc") or suojaus == 0tunnus == "antti" and (salasana == "abc" or suojaus == 0)
Tietokilpailu
- Tee tietokilpailupeli, joka kysyy käyttäjältä kysymyksiä. Jokaisesta oikeasta vastauksesta saa pisteen, ja ohjelma ilmoittaa lopuksi pistemäärän.
Ohjelmassa muuttuja
Lyhennys
Vastaavaa merkintää voi käyttää myös muiden laskutoimitusten kanssa.
Ohjelman tulostus voisi olla seuraava:pisteet on laskurimuuttuja, jonka
arvo on aluksi nolla ja jonka arvo kasvaa yhdellä aina, kun käyttäjä
vastaa kysymykseen oikein.Lyhennys
pisteet += 1 tarkoittaa samaa kuin pisteet = pisteet + 1.Vastaavaa merkintää voi käyttää myös muiden laskutoimitusten kanssa.
Tervetuloa tietokilpailuun!
Kuinka monta sekuntia on tunnissa?
3600
Oikein!
Minä vuonna J. Sibelius kuoli?
1957
Oikein!
Mikä on Bulgarian pääkaupunki?
Plovdiv
Väärin!
Peli loppui!
Pisteet: 2
Arvaaja
- Tee ohjelma, joka arvaa käyttäjän ajatteleman viikonpäivän. Ohjelma kysyy korkeintaan kolme kyllä/ei-kysymystä.
Ajattele jotain viikonpäivää! Onko viikonpäivän nimessä n-kirjain (k/e)? e Onko viikonpäivän nimessä k-kirjain (k/e)? e Onko viikonpäivän nimessä r-kirjain (k/e)? k Viikonpäivä on torstai!
Ohjelma sisältää paljon sisäkkäisiä ehtorakenteita, joissa liikutaan sen mukaan, mitä vastauksia käyttäjä antaa kysymyksiin. Ohjelman täytyy tulostaa monessa kohdassa melkein samanlainen kysymys, minkä vuoksi kysymyksen alkuosa ja loppuosa haetaan muuttujista. Kuten ohjelmasta näkyy,
input-funktion tulos voi olla suoraan osana ehtoa.




Ei kommentteja:
Lähetä kommentti