Useamman ehdon käsittely - elif, and, or, not

Sisältää
tehtäviä!

Useamman ehdon käsittely - elif

Useampia ehtoja voidaan käsitellä kirjoittamalla elifi -haaroja if lauseeseen. Näitä voi olla kuinka monta tahansa. Viimeiseksi voi myös kirjoittaa else -haaran.


luku = input("Anna kokonaisluku")	#kysytään luku
luku = int(luku)					#muuta vastaus luvuksi

if (luku == 0):
	print("Annoit nolla")
elif (luku < 0):
	print("Annoit pienemmän kuin nolla")
elif (luku > 0):
	print("Annoit suuremman kuin nolla")



Huomaa!
Jos ylempi elif -haara toteutuu, niin alempia ei enää tutkita:


luku = input("Anna kokonaisluku")	#kysytään luku
luku = int(luku)					#muuta vastaus luvuksi

if (luku == 0):
	print("Annoit nolla")
elif (luku > 0):
	print("Annoit suuremman kuin nolla")
elif (luku == 10):
	print("Annoit luvun 10")	#tämä ei koskaan toteudu
								#ylempi elif toteutuu 
								#kaikilla luvuilla > 0




and, or, not

and, or ja not -sanoilla voidaan ehtolauseesta tehdä monimutkaisempi ja ilmaisuvoimaisempi.

Esimerkiksi ilmaisu Jos (luku ei ole nolla) voidaan esittää usealla tavalla:


luku = input("Anna kokonaisluku")	#kysytään luku
luku = int(luku)					#muuta vastaus luvuksi

if (luku == 0):
	print("Annoit nollan")

if (luku < 0 or luku > 0):
	print("Et antanut nollaa.")

if (not(luku == 0)):
	print("Et antanut lukua 0")

if (luku < 0 and luku > 0):
	print("Tätä ilmoitusta ei tule koskaan")

Tosi- ja epätosi-lauseiden logiikkaa.

Olkoon lause A "kävit kaupassa".
Olkoon lause B "kävit kioskilla".

Lause A ja lause B kumpikin voi saada totuusarvon True tai False.

Tällöin lause "kävit kaupassa ja kävit kioskilla" eli "A and B" on totta vain jos molemmat erilliset lauseet ovat totta.

Voimme tehdä totuustaulun sanasta and:

andABA and B
TrueTrueTrue
TrueFalseFalse
FalseTrueFalse
FalseFalseFalse

Totuustaulu sanasta or eli tai -sanasta:

orABA or B
TrueTrueTrue
TrueFalseTrue
FalseTrueTrue
FalseFalseFalse

Totuustaulu sanasta not:

notAnot(A)
TrueFalse
FalseTrue


from browser import confirm

kauppa = confirm("Kävitkö kaupassa? Ok = True, Peruuta = False")
kioski = confirm("Kävitkö kioskissa? Ok = True, Peruuta = False")

print(kauppa and kioski)
print(kauppa or kioski)



Huomaa!
Yllä olevassa esimerkissä käytettiin confirm -kysymystä,
mikä vaatii ohjelman alkuun from browser import confirm.

Tehtävä 1

Kirjoita ohjelma, mikä kysyy mielipidettä kolmesta ruokalajista.

Jos käyttäjä pitää kaikista, ohjelma tulostaa: "Pidit kaikista ruokalajeista."

Jos käyttäjä piti yhdestä ruokalajista, ohjelma tulostaa: "Olet melko valikoiva."

Jos käyttäjä ei pitänyt mistään ruokalajista, ohjelma tulostaa: "Olet nirso."

Vihje: Voit käytää funktioita ja funktion palautusarvoa kysymyksiin.

Suorita tehtävät Editorilla ja tallenna työsi Tiedostona.

Tehtävä 2

Kirjoita ohjelma, mikä arpoo kruunan tai klaavan kolme kertaa.

Ohjelma kysyy käyttäjältä arvausta "kruuna vai klaava" ja antaa kysymyksien jälkeen tuloksen, montako kertaa käyttäjä arvasi oikein.

Vihje: import random, random.randint(0,1) , voit käyttää funktioita ja palautusarvoja.

Suorita tehtävät Editorilla ja tallenna työsi Tiedostona.