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-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
- Else–satsen deklarerar man med det reserverade ordet else.
- Else-satsen kan enbart användas i samband med en if-sats.
- Else–satsen 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:
- 7
- 15
- 10
- -1
- “Hej”
Om du behöver en repetition på hur inputs fungerar i Python kan du läsa avsnittet Input i Python.
Svar
- Talet är inte större än 10.
- Talet är större än 10.
- Talet är inte större än 10.
- Talet är inte större än 10.
- Programmet kraschar eftersom det inte går att omvandla textsträngen “Hej” till en siffra. Läs mer om typkonverteringar under Typkonverteringar i Python.
Nej, en else-sats måste alltid komma efter en if-sats.
Koden inuti en else-sats indenterar man med ett indrag (tab) eller fyra mellanslag.
Nej, else-satsen tar inte ett villkor. Den körs bara om if-satsens villkor inte är uppfyllt.