Villkor och logik

Hittills har programmen gjort samma sak varje gång. Med villkor kan ett program fatta beslut och ta olika vägar beroende på data. Målet är att du ska kunna använda if, elif och else, och skriva jämförelser och logiska uttryck.

if

En if-sats kör några rader bara om ett villkor är sant. Villkoret följs av ett kolon :, och raderna som hör till är indragna.

Python · du kan ändra koden
kod = int(input("Ange den fyrsiffriga lösenkoden: "))

if kod == 4527:
    print("Lösenkoden stämmer.")
    print("Välkommen!")

print("Programmet är slut.")   # inte indragen – körs alltid

== betyder jämför: är värdena lika? Kom ihåg att ett enkelt = är tilldelning.

Jämförelser och logik

De vanligaste jämförelserna liknar dem i matematiken:

==
Betydelse
lika med
Exempel som är sant
5 == 5
!=
Betydelse
inte lika med
Exempel som är sant
5 != 3
>
Betydelse
större än
Exempel som är sant
7 > 2
<
Betydelse
mindre än
Exempel som är sant
2 < 7
>=
Betydelse
större än eller lika med
Exempel som är sant
5 >= 5
<=
Betydelse
mindre än eller lika med
Exempel som är sant
4 <= 5

Villkor kan kombineras med de logiska operatorerna:

  • and – sant om båda villkoren är sanna,
  • or – sant om minst ett av villkoren är sant,
  • not – vänder på sant och falskt.
Python · du kan ändra koden
ålder = int(input("Hur gammal är du? "))
har_körkort = input("Har du körkort? (ja/nej) ") == "ja"

if ålder >= 18 and har_körkort:
    print("Du får köra bil.")
if ålder < 13 or ålder > 65:
    print("Du får rabatt på bussen.")
if not har_körkort:
    print("Du har inget körkort.")

else

Med else bestämmer du vad som ska hända när villkoret inte är uppfyllt.

Python · du kan ändra koden
kod = int(input("Ange den fyrsiffriga lösenkoden: "))

if kod == 4527:
    print("Lösenkoden stämmer.")
    print("Välkommen!")
else:
    print("Lösenkoden är felaktig.")
    print("Tryck på Kör och försök igen.")

elif

Behöver du fler än två vägar använder du elif (else if). Python testar villkoren uppifrån och ner, och bara den första vägen som stämmer körs — resten hoppas över.

Python · du kan ändra koden
poäng = int(input("Hur många poäng fick du? "))

if poäng > 30:
    betyg = "A"
elif poäng > 20:
    betyg = "C"
elif poäng > 10:
    betyg = "E"
else:
    betyg = "F"

print(f"Betyg: {betyg}")

Tänk på

Ordningen spelar roll. Med 35 poäng är både poäng > 30 och poäng > 20 sanna, men bara den första som stämmer används — du får A. Byter du plats på villkoren blir det fel.

Här uppfylls inget villkor förrän det sista:

Python · du kan ändra koden
x = 10

if x > 10:
    print("Talet är större än 10")
elif x < 10:
    print("Talet är mindre än 10")
elif x == 10:
    print("Talet är 10")

Uppgift

Uppgift · Biobiljett

Skriv ett program som sköter prissättningen på en bio. Användaren anger sin ålder och programmet skriver ut priset enligt reglerna:

  • Barn (under 12 år): 60 kr
  • Ungdom (12–17 år): 80 kr
  • Vuxen (18 år och uppåt): 120 kr
Din lösning · du kan ändra koden
# Skriv din kod här
Visa lösningsförslag
Python · du kan ändra koden
ålder = int(input("Hur gammal är du? "))

if ålder < 12:
    pris = 60
elif ålder < 18:
    pris = 80
else:
    pris = 120

print(f"Biljetten kostar {pris} kr.")

Eftersom bara det första sanna villkoret används räcker det att skriva ålder < 18 på andra raden — de som är under 12 har redan fått sitt pris.

Snabbkoll

Har du förstått?

1.Vad blir 5 != 3?

2.Vilket villkor är sant när ålder = 15?

3.Hur många av vägarna körs i en if–elif–else-sats?

4.Vad saknas i if x > 3 print(x)?