Teknik 1 · Programmering · Kapitel 3
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.
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.
å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.
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.
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:
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
# Skriv din kod här
Visa lösningsförslagDölj lösningsförslag
å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)?