Slik bruker du if, else og elif i Python

Lær if, else og elif i Python. Sammenligningsoperatorer, betinget kjøring og eksempler steg for steg.

Videoforhåndsvisning

Opprett konto for å se video

Det er helt gratis og tar under 30 sekunder

Opprett gratis kontoHar du konto? Logg inn

Du har en variabel med en alder, og programmet skal reagere forskjellig avhengig av verdien. Kanskje brukeren er gammel nok til å kjøre bil, kanskje ikke. Uten if else i Python har du ingen måte å styre hvilken kode som kjører. Med if-setninger tar programmet beslutninger basert på betingelser du definerer.

Slik skriver du en if-setning

En if-setning starter med nøkkelordet if, etterfulgt av en betingelse og et kolon. Koden som hører til if-setningen må rykkes inn (indenteres) med fire mellomrom eller en tab. Python bruker innrykk for å vite hva som tilhører blokken.

Her spør du brukeren om alder og sjekker om den er 16 eller høyere:

alder = int(input("Din alder: "))

if alder >= 16:

    print("Du kan starte øvelseskjøring")

Betingelsen alder >= 16 evalueres til enten True eller False. Er den True, kjører print-linjen. Er den False, hopper Python over hele blokken og går videre.

Sammenligningsoperatorer du trenger å kunne

For å bygge betingelser bruker du sammenligningsoperatorer. Python har seks stykker:

  • == sjekker om to verdier er like (legg merke til dobbelt likhetstegn, fordi enkelt likhetstegn brukes til å tilordne variabler)
  • != sjekker om verdiene er ulike
  • < sjekker om venstre side er mindre
  • > sjekker om venstre side er større
  • <= sjekker om verdien er mindre eller lik
  • >= sjekker om verdien er større eller lik

En vanlig feil er å skrive = i stedet for == i betingelser. Python gir deg en feilmelding hvis du prøver, men det er greit å vite hvorfor det er to likhetstegn fra starten.

else gir deg et alternativ

Med bare if skjer det ingenting når betingelsen er False. Ofte vil du gi brukeren en tilbakemelding uansett. Da bruker du else:

alder = int(input("Din alder: "))

if alder >= 16:

    print("Du kan starte øvelseskjøring")

else:

    print("Du må vente til du er 16")

else har ingen egen betingelse. Den fanger opp alt som ikke traff if-betingelsen. Du kan tenke på det som "ellers, gjør dette".

elif for flere betingelser

Noen ganger holder det ikke med to utfall. Kanskje du vil sjekke alderen mot flere grenser. Da bruker du elif (en forkortelse for "else if"):

if alder >= 18:

    print("Du kan ta førerprøven")

elif alder >= 16:

    print("Du kan øvelseskjøre")

else:

    print("Du må vente litt til")

Python sjekker betingelsene ovenfra og ned. Den første som er True, kjører. Resten hoppes over. Rekkefølgen har derfor mye å si. Hadde du sjekket alder >= 16 først, ville en 20-åring også truffet den betingelsen, og alder >= 18 ville aldri blitt nådd.

Du kan ha så mange elif-blokker du vil, men bare én if øverst og én valgfri else nederst.

Nøstede if-setninger

Du kan plassere en if-setning inne i en annen. Det er nyttig når du trenger å sjekke en betingelse bare hvis en annen betingelse allerede er oppfylt:

if alder >= 16:

    if har_trafikkalt_kurs:

        print("Du kan øvelseskjøre")

    else:

        print("Fullfør trafikalt grunnkurs først")

Innrykket forteller Python hvilken if som hører til hvilken else. To nivåer med innrykk betyr at den indre if-setningen bare kjører hvis den ytre betingelsen er True.

Nøstede if-setninger fungerer, men for mange nivåer gjør koden vanskelig å lese. Med logiske operatorer som and og or kan du ofte slå sammen betingelser til én if-setning i stedet.

Sammenligne strenger og tall

Sammenligningsoperatorene fungerer både med tall og strenger. Med strenger sjekker == om teksten er helt identisk, inkludert store og små bokstaver:

svar = input("Fortsette? (ja/nei): ")

if svar == "ja":

    print("Da fortsetter vi")

Skriver brukeren "Ja" med stor J, er betingelsen False. Vil du ignorere stor/liten bokstav, kan du bruke svar.lower() == "ja" for å konvertere til små bokstaver før sammenligningen.

Vanlige feil med if else i Python

Den feilen nybegynnere gjør oftest, er å glemme kolon etter betingelsen. Python krever kolon etter if, elif og else. Uten det får du en SyntaxError.

Feil innrykk er den andre klassikeren. Blander du mellomrom og tab, eller har ulikt antall mellomrom, klager Python med en IndentationError. Velg enten fire mellomrom eller tab, og hold deg til det gjennom hele filen.

En tredje feil er å bruke = der du mener ==. Husk: ett likhetstegn gir en verdi, to likhetstegn sammenligner. De fleste editorer markerer dette som en advarsel, men det er lurt å trene øynene til å fange det selv.

Neste steg

Når du mestrer if-setninger, er neste naturlige steg å bruke for-løkker for å gjenta kode flere ganger. If-setninger og løkker jobber tett sammen. Du vil ofte ha en if inne i en løkke for å filtrere eller reagere på spesifikke verdier. Kombiner du betingelser med and, or og not, kan du bygge ganske avansert logikk med bare grunnleggende byggesteiner. Python-dokumentasjonen har en fullstendig oversikt over kontrollflyt som er verdt et besøk.

Denne videoen er hentet fra kurset Python for nybegynnere på Utdannet.no. I kurset jobber du deg gjennom if-setninger, løkker og funksjoner steg for steg, med oppgaver du løser underveis og forklaringer som bygger på hverandre.