Tilbake
2.3
Betingelser og valg (if/else)

2.3 Betingelser og valg (if/else)

Lær å bruke if, elif og else for beslutninger, sammenligningsoperatorer og logiske operatorer.

55 min
8 oppgaver
Betingelseif-setningelifSammenligningsoperator
Du leser den lesevennlige versjonen
Din fremgang i kapitlet
0 / 8 oppgaver

Når programmet må ta et valg

Til nå har programmene våre kjørt rett fram, fra topp til bunn, uten å ta en eneste beslutning. Men virkelige programmer må velge: «Hvis brukeren skriver riktig passord, gi tilgang – ellers vis en feilmelding.» Eller: «Hvis temperaturen er under null, advar om frost.» Verktøyet for dette er betingelser og if-setninger.

En betingelse er et uttrykk som Python regner ut til enten True eller False. For å lage dem trenger vi sammenligningsoperatorer. == betyr «er lik» (ikke å forveksle med ett likhetstegn, som tilordner), != betyr «er ikke lik», og så har vi >, <, >= og <=. For eksempel er 5 == 5 lik True, mens 5 < 3 er False. Du kan også sammenligne tekst, som Python gjør alfabetisk: "anna" < "bjørn" er True, men pass på at "Hei" == "hei" er False, for stor og liten bokstav er ikke det samme.

En if-setning kjører kode bare når betingelsen er sann:

alder = int(input("Hvor gammel er du? "))
if alder >= 18:
    print("Du er myndig!")

Her er innrykket avgjørende. Det er innrykket – typisk fire mellomrom – som forteller Python hvilke linjer som hører til if-blokken. Linjer uten innrykk kjøres alltid, uansett om betingelsen var sann.

To veier, og flere

Ofte vil du gjøre én ting hvis betingelsen er sann, og noe annet ellers. Da bruker du else:

tall = int(input("Skriv inn et tall: "))
if tall % 2 == 0:
    print(f"{tall} er et partall")
else:
    print(f"{tall} er et oddetall")

Her bruker vi modulo (%): er resten ved divisjon med 2 lik 0, er tallet partall. Det er alltid enten if-blokken eller else-blokken som kjøres – aldri begge.

Men hva om du har flere enn to muligheter? Da bruker du elif, kort for «else if». Python sjekker betingelsene fra topp til bunn og stopper ved den første som er sann:

poeng = int(input("Hvor mange poeng fikk du? "))
if poeng >= 90:
    karakter = "A"
elif poeng >= 80:
    karakter = "B"
elif poeng >= 60:
    karakter = "C"
else:
    karakter = "F"
print(f"Du fikk karakteren {karakter}")

Rekkefølgen er helt avgjørende. Fordi Python stopper ved første treff, må du starte med den høyeste grensen og jobbe deg nedover. Hadde du startet med poeng >= 60, ville selv en elev med 95 poeng fått C, fordi 95 også er større enn 60. Samme mønster bruker du til alt fra værmeldinger til menyvalg.

📝Oppgave Quiz 1

Å kombinere betingelser

Noen ganger må flere ting stemme samtidig. Da bruker du logiske operatorer. and (og) gir True bare når begge betingelsene er sanne. or (eller) gir True hvis minst én er sann. Og not (ikke) snur sannhetsverdien, slik at True blir False.

Med and kan du sjekke at både alder og førerkort stemmer:

if alder >= 18 and har_lappen == "ja":
    print("Du kan kjøre bil!")

Med or holder det at én ting stemmer, for eksempel at det er lørdag eller søndag. Og not regner er sant nettopp når det ikke regner. Et klassisk eksempel er et påloggingssystem der både brukernavn og passord må være riktige:

if brukernavn == riktig_brukernavn and passord == riktig_passord:
    print("Innlogging vellykket!")
elif brukernavn != riktig_brukernavn:
    print("Feil brukernavn!")
else:
    print("Feil passord!")

Her bruker vi and for å kreve at begge stemmer, og elif/else for å gi presis tilbakemelding. Du kan også nøste if-setninger inni hverandre, men det blir fort uoversiktlig. Som tommelfingerregel bør du ikke nøste dypere enn to nivåer – ofte kan du erstatte nøsting med en ryddigere elif-kjede eller en and-betingelse. God praksis er også å validere input først, for eksempel sjekke om poeng < 0 or poeng > 100 før du regner videre.

📝Oppgave Quiz 2

Oppsummering

Nå kan programmene dine ta valg. En betingelse er et uttrykk som er True eller False, bygd med sammenligningsoperatorer som ==, !=, < og >. Med if, elif og else styrer du hvilken kode som kjøres, og innrykket avgjør hva som hører til hver blokk. Husk at Python stopper ved første sanne betingelse, så rekkefølgen i en elif-kjede teller.

Logiske operatorer lar deg kombinere betingelser: and krever at begge stemmer, or krever minst én, og not snur verdien. Med disse byggesteinene kan du lage påloggingssystemer, karakterkalkulatorer og alt annet som krever at programmet reagerer ulikt på ulik input – og du bør validere input og unngå for dyp nøsting.

Dette kapitlet er skrevet av Anthropics toppmodeller (Claude Opus og Claude Fable) og er foreløpig ikke manuelt gjennomgått — kvalitetskontrollen gjøres av uavhengige KI-agenter, og innmeldte feil rettes fortløpende. Funnet en feil? Meld fra, så retter vi den. Les mer om hvordan innholdet lages.