Osa 1

If-satser

Hittills har vi skapat program där koden körts rad för rad från början till slut. Istället för att köra varje kodrad när programmet är igång är det ofta nyttigt att ha delar i programmet som endast körs i vissa situationer.

Till exempel verifierar följande program att användaren är tillräckligt gammal:

alder = int(input("Vad är din ålder? "))

if alder > 17:
    print("Du är myndig!")
    print("Här får du alltså GTA 6.")

print("Nästa kund!")

När användaren är över 17 år, borde det se ut så här när programmet körs:

Exempelutskrift

Vad är din ålder? 18 Du är myndig! Här får du alltså GTA 6. Nästa kund!

Däremot, om användaren är 17 eller yngre, ser utskriften ut så här:

Exempelutskrift

Vad är din ålder? 16 Nästa kund!

Dessa exempel visar hur ett värde som getts till programmet påverkar vilka delar av koden som körs. Programmet innehåller en villkorssats, som vanligen kallas if-sats, som gör det möjligt att ange vilken kod som ska köras i vilka situationer.

1 6

I en if-sats följs nyckelordet if av ett villkorsuttryck som till exempel kan vara en jämförelse av två värden. Koden som följer körs endast då villkoret uppfylls.

Notera kolontecknet. Om det saknas…

alder = 10

# kolonet saknas i slutet av raden
if alder > 17
    print("Du är myndig.")

…kommer ett felmeddelande att skrivas ut när programmet körs:

Exempelutskrift
File "program.py", line 3
  if alder > 17
              ^
SyntaxError: invalid syntax

Jämförelseoperatorer

Det är vanligt att man vill jämföra två värden sinsemellan. Här följer en tabell över de vanligaste jämförelseoperatorerna i Python:

OperatorBetydelseExempel
==Är lika meda == b
!=Är inte likaa != b
>Större äna > b
>=Större än eller lika meda >= b
<Mindre äna < b
<=Mindre än eller lika meda <= b

Vi tar nu en titt på ett program som ger olika utskrifter baserat på det värde som användaren anger. Här har vi tre if-satser som kan uppfyllas då värdet är negativt, positivt eller lika med noll:

tal = int(input("Ge ett tal: "))

if tal < 0:
    print("Talet är negativt.")

if tal > 0:
    print("Talet är positivt.")

if tal == 0:
    print("Talet är noll.")

Så här kan det se ut när vi kör programmet med olika indata:

Exempelutskrift

Ge ett tal: 15 Talet är positivt.

Exempelutskrift

Ge ett tal: -18 Talet är negativt.

Exempelutskrift

Ge ett tal: 0 Talet är noll.

Indentering

Python känner igen att en kodsnutt hör till en if-sats på basis av indentering, dvs. instruktioner som dragits in på raden. Alla instruktioner som kommer efter if-raden som indenteras på samma sätt hör till if-satsen. Indenteringen (indragningen, tomrummet) ska vara lika stort för varje rad.

Exempelvis:

losenord = input("Ange lösenord: ")

if losenord == "katt":
    print("Du visste lösenordet!")
    print("Du måste alltså vara den riktiga användaren...")
    print("...eller så är du en hacker.")

print("Programmet avslutades. Tack och hej!")

Du kan använda tab-tangenten för att lägga till mellanrum där det behövs. Om du använder mellanslag är det viktigt att komma ihåg att använda lika många för varje rad. OBS! Använd antingen tab eller mellanslag, blanda inte inom samma if-sats.

1 6 keyboard

Flera texteditorer indenterar automatiskt den följande raden när Enter-tangenten trycks efter ett kolon. Du får bort indenteringen genom att använda Backspace-tangenten i början av en rad.

1 6 keyboard2
Tangentbordsbilden hämtad från: Clker-Free-Vector-Images from Pixabay

Boolean-värden och -uttryck

Alla villkor i en if-sats resulterar i ett sanningsvärde, det vill säga sant eller falskt. Till exempel är villkoret a < 5 sant då a är mindre än fem och falskt då a är fem eller större.

Denna typ av värden kallas alltså Boolean-värden (efter matematikern George Boole). I Python representerar datatypen bool ett sanningsvärde. Variabler av typen bool kan endast ha ett av följande värden: True (sant) och False (falskt).

En kodsnutt som resulterar i något av de ovan nämnda värdena kallas Boolean-uttryck. Ett villkor i en if-sats är alltid ett Boolean-uttryck och kan i flera situationer användas som synonym för villkorsuttryck.

Resultatet av ett Boolean-uttryck kan lagras i en variabel på samma sätt som vilken som helst annan numerisk räkneoperation:

a = 3
villkor = a < 5
print(villkor)
if villkor:
    print("a är mindre än 5")
Exempelutskrift

True a är mindre än 5

Pythons nyckelord True och False kan också användas direkt som sådana. I det följande exemplet körs print-instruktionen alltid, eftersom värdet på villkoret är True:

villkor = True
if villkor:
    print("Vi når alltid hit")
Exempelutskrift

Vi når alltid hit

Man kan tycka att det i ovanstående exempel inte verkar vara en så nyttig funktion, men senare under kursen kommer vi att se på situationer där vi kan ha mer nytta av Boolean-variabler.

Repetitionsfrågor till denna del:

Loading...
:
Loading...

Log in to view the quiz

Vänligen svara på en kort enkät om materialet i den här veckans modul. Du får ett poäng när du fyllt i enkäten.

Loading...
:
Loading...

Log in to view the quiz

Du har nått slutet av den här delen!

Se dina poäng genom att klicka på cirkeln nere till höger av sidan.