Python for lærere – Egentrening

Fire konsepter

4 Vilkår

4.2 Elif

Da er vi her…den siste (og korteste) siden i dette lille kurset. Vi skal se på vilkår, og hvordan vi skriver et vilkår dersom hendelsen kan ha flere enn to utfall. Vi tenker at vi kaster en terning, og vi vil komme med en unik tilbakemelding, avhengig av hva terningen ble:

				from random import randint

terning = randint(1, 6)

if terning == 6:
    print("Det var flaks, du slo en 6-er")
			

Dette er en god start, men den gjør jo noe kun dersom man har slått en 6-er. Her kunne du laget 5 nye if-tester, men en bedre kode er:

				from random import randint

terning = randint(1, 6)

if terning == 6:
    print("Det var flaks, du slo en 6-er")
elif terning == 5:
    print("Det var nesten flaks...5-er")
elif terning == 4:
    print("Jaja, du fikk mer enn 3 i hvertfall!")
elif terning == 3:
    print("Under middels....ikke greit!")
else:
    print("Dette var bare flaut!")
			

I denne koden henger alle vilkårene sammen, så på mange måter så er dette kun en if-test. Dersom ett vilkår stemmer, så slipper python å sjekke om alle andre vilkår stemmer. På denne måten blir koden mer effektiv.

La oss lage oss en liten oppgave:
På en matteprøve blir klassen enige om at over 90% er en 6-er, over 70% er en 5-er, over 50% er en 4-er, over 30% er en 3-er, over 10% er en 2-er og resten er en 1-er. Det er mulig å få 43 poeng på prøva, og programmet bør spørre hvor mange poeng du fikk:

				max_poeng = 43
poeng = int(input("Hvor mange poeng fikk du?"))
prosent = poeng / max_poeng * 100

print("Din prosent:", prosent)
if prosent > 90:
    print("Karakter: 6")
elif prosent > 70:
    print("Karakter: 5")
elif prosent > 50:
    print("Karakter: 4")
elif prosent > 30:
    print("Karakter: 3")
elif prosent > 10:
    print("Karakter: 2")
else:
    print("Karakter: 1")
			

Test koden i Code! Hva? Liker du ikke alle desimalene i prosenten, sier du? Gjør noe med det!

Forrige – 4.1 If-tester

Neste – Oppsummering

DigitAbel – for dypere læring