Else-satsen i Python

Else-satsen i Python använder man för att ange vilka operationer som ska köra om villkoret i tillhörande if-sats inte är uppfyllt (False).

Vad är en else-sats i Python?

En else-sats i Python är ett valfritt tillägg som man använder när man vill att programmet ska utföra en operation i det fall när villkoret i en if-sats inte är uppfyllt, med andra ord när villkoret är False.

Else-satsen använder man för att ange vilka operationer som ska köra om villkoret i tillhörande if-sats inte är uppfyllt (False).

Flödesschemat visar hur Python hanterar else-satsen. Först startar programmet med if-satsen. Om if-satsens villkor är uppfyllt (True) så kommer alla operationer köra som är angivna i if-satsen. Om if-satsens villkor däremot inte är uppfyllt (False), så kommer programmet att utföra alla operationer som är angivna i else-satsen. Oavsett om programmet utför if-satsen eller else-satsen, så kommer programmet gå vidare på samma ställe när villkorssatsen är klar.

Else-sats Java

Else-satsen i Python:

  • Kan enbart skapas i samband med en if-sats.
  • Utför ett antal angivna operationer om villkoret i if-satsen är False
  • Else-satsen utför endast kodblocket om if-satsen är False, annars hoppas programmet över else-satsen och går vidare i programmet.
  • Observera att else-satsen inte har något villkor.

Skapa en Else-sats i Python

En else-sats skapar man enbart i samband med en if-sats. Man skapar alltså först en if-sats och bygger sedan vidare med else-satsen. Syntaxen för en else-sats ser ut såhär:

if logiskt uttryck:
    if-operation
else:
    else-operation
  • Elsesatsen deklarerar man med det reserverade ordet else.
  • Else-satsen kan enbart användas i samband med en if-sats.
  • Elsesatsen har inget villkor.
  • Alla operationer som är indenterade under ordet else, tillhör else-satsen.

#1 Exempel: Else-satsen i Python

Vi ska se ett kort och enkelt exempel som tydligt visar hur else-satsen kompletterar If-satsen.

number = 4

if number > 5:
    
    print("If-satsen körs")

else:
    
    print("Else-satsen körs")

Eftersom if-satsen inte är uppfylld, så kommer else-satsen köras istället. Utskriften i detta fall blir alltså:
Else-satsen körs

#2 Exempel: Else-satsen i Python

Tänk dig att du vill programmera en lampa. Om lampan är släckt, och vi trycker på lampknappen, kommer programmet tända lampan.

Däremot, om lampan än tänd kommer programmet släcka lampan, trots att vi trycker på samma knapp! Samma knapp kan alltså utföra olika kommandon, beroende på vilket villkor vi har. Det är detta som är styrkan i villkorssatserna, vi kan utföra olika operationer beroende vilket tillstånd vi har. I det här fallet har vi två villkor. Tänt, eller släckt. 

Med hjälp av en boolean, kan vi avgöra om lampan är tänd eller släckt. I detta fall är variabeln True om lampan är tänd och False om lampan är släckt.

isLampOn = False; # Variabeln isLampOn deklareras till False, alltså är den släckt.

Det vi vill ska hända om lampan är släckt, är att programmet ska tända lampan. Eller, om lampan är tänd så vill vi att programmet ska släcka lampan. Det går ju inte tända lampan om den redan är tänd eller släcka lampan när den redan är släckt. Detta kan vi programmera med följande programkod:

isLampOn = False

if isLampOn:                 # Om lampan alltså tänd, alltså att isLampOn är True utför if-satsen
    
    isLampOn = False;        # Sätt variabeln isLampOn till False, lampan släcks. 
    
    print("Lampan släcks")

else:                        # Om if-satsens villkor inte är sant (true)
    isLampOn = True;         # Sätt variabeln isLampOn till true, lampan tänds. 
    
    print("Lampan tänds")

Utskriften i detta fall blir alltså
Lampan tänds

Vanliga fallgropar och fel

Det är lätt att göra misstag när man arbetar med else-satser. Här är några vanliga fallgropar:

  • Glömmer att indentera koden korrekt under else-satsen.
  • Använder ett villkor i else-satsen vilket är felaktigt då else-satsen inte accepterar något villkor.

#3 Exempel med användardata

Att förstå när och hur man ska använda else-satser kan illustreras med mer komplexa exempel:

user_input = int(input("Ange ett tal: "))

if user_input > 10:
    print("Talet är större än 10.")
else:
    print("Talet är inte större än 10.")

Testa programmet och ge olika input till programmet. Vad skriver programmet ut om du anger:

  1. 7
  2. 15
  3. 10
  4. -1
  5. “Hej”

Om du behöver en repetition på hur inputs fungerar i Python kan du läsa avsnittet Input i Python.

Svar

  1. Talet är inte större än 10.
  2. Talet är större än 10.
  3. Talet är inte större än 10.
  4. Talet är inte större än 10.
  5. Programmet kraschar eftersom det inte går att omvandla textsträngen “Hej” till en siffra. Läs mer om typkonverteringar under Typkonverteringar i Python.

Kan en else-sats användas utan en if-sats?

Nej, en else-sats måste alltid komma efter en if-sats.

Hur indenterar man koden inuti en else-sats?

Koden inuti en else-sats indenterar man med ett indrag (tab) eller fyra mellanslag.

Behöver else-satsen ett villkor?

Nej, else-satsen tar inte ett villkor. Den körs bara om if-satsens villkor inte är uppfyllt.

To top