Hvad-nu-hvis

De små programmer, som du har skrevet indtil nu er startet fra første linje og har kørt til slutningen. Du vil nu lære, hvordan dit program kan vælge forskellige retninger

Prøv følgende lille program

# Python: eks2-3-1.py
# Undersøg om tallet er 1

tal = int(input("Tast et tal "))

if tal==1:
    print("Du har tastet 1")
print("slut")

Prøv at køre programmet et par gange og taste forskellige tal og se, hvad der sker. Er der nogen forskel om du taster 1 eller et andet tal?

Den første linje efter kommentaren har vi set før. Den tager et tal fra brugeren og laver typen om til et heltal (int).

Den næste linje starter med if (hvis) og linjen betyder at afvikle næste linje hvis tal er 1 ellers spring over. Hvis tal er 1, så skriver programmet du har tastet 1 – ellers springer den over.

En meget vigtig ting er at print er indrykket. Det fortæller Python at den indrykket Python kode efter if kun skal afvikles, hvis betingelsen efter if er opfyldt. Hvis betingelsen ikke var opfyldt fortæller det Python at det skal fortsætte når indrykningen slutter.

Den sidste linje skriver “slut” uanset hvad du har tastet.

Du kan udvide Python koden, så den også skrive, hvis du ikke har tastet 1. Prøv følgende lille Python program

# Python: eks2-3-2.py
# Undersøg om tallet er 1

tal = int(input("Tast et tal "))

if tal==1:
    print("Du har tastet 1")
else:
    print("Du har ikke tastet 1")

print("slut")

Der er indsat to linjer i koden, som betyder: Hvis tal har værdien alt andet end 1, så skriv “Du har ikke tastet 1”

Du kan også udvide if til at vælge. Prøv at se denne kode

# Python: eks2-4-3.py
# Undersoeg om tallet er 1, 2 eller 3

tal = int(input("Tast et tal: "))

if tal==1:
    print("Du har tastet en")
elif tal==2:
    print("Du har tastet to")
elif tal==3:
    print("Du har tastet tre")
else:
    print("Det tal kender jeg ikke")

Vi har indsat en elif, som er en forkortelse for else-if (eller på dansk ellers-hvis). Dette stykke kode giver mulighed for at være mellem forskellige tal.

En større regnemaskine

Vi kan nu lave en større regnemaskine. Prøv at gå igennem i dit hoved, hvad dette program gør

# Python: eks2-4-4.py
# Regnemaskine som kan plus, minus, gange og dividere

# Spoerg om to tal
tal_1 = input("Indtast et tal: ")
tal_2 = input("Indtast et tal: ")

# Skriv valgmulighederne til brugeen
print('+ for at laegge sammen')
print('- for at traekke fra')
print('* for at gange')
print('/ for at dividere')

# Spørg hvilken operation brugeren vil
operation = input("Tast (+, -, * eller /):  " )

# Regn resultat ud fra valg operation
if operation == "+":
    resultat = int(tal_1) + int(tal_2)
elif operation == "-":
    resultat = int(tal_1) - int(tal_2)
elif operation == "*":
    resultat = int(tal_1) * int(tal_2)
elif operation == "/":
    resultat = int(tal_1) / int(tal_2)
else:
    # Brugeren har indtastet ukendt operation. Skriv besked
    print("Den operation kender jeg ikke")

    # Forlad Python programmet
    exit()

print(str(tal_1) + operation + str(tal_2) + " = " + str(resultat))

Du har lært:

  • At du kan få Python kode til at gøre noget forskelligt ud fra værdier i variable
  • At indrykning er vigtigt for at vise Python, hvordan forskellige dele af koden hænger sammen
  • Hvordan if/elif/else kan bruges til afvikle forskellige stykker koder afhængig af variablens værdi

Opgaver

1) Udvid Python programmet, som skriver tal med bogstaver, så det kan alle tallene fra 0 til 9