if-satsen#
Detta är en så kallad villkorssats som gör att man, beroende på värde
av ett logiskt (dvs typ bool
) uttryck, kan göra olika saker.
Exempel:
Antag att vi vill skriva ut ordet ”Positivt” om variabeln
x
är större än noll. Vi kan då skrivaif x > 0: print("Positivt")
Utskriften kommer endast ske om villkoret är sant dvs om
x
är större än 0.Indragningen av utskriftssatsen kallas för indentering.
Om man vill skriva ”Positivt” om
x
är större än 0 annars ”Icke positivt”if x > 0: print("Positivt") else: print("Icke positivt")
Allmänt utseende#
Satsen finns således i två varianter:
if villkor:
en eller
flera indenterade
satser
|
if villkor:
en eller flera
indenterade satser
else:
en eller flera
indenterade satser
|
Varianternas funktion kan åskådliggöras med figurerna:
![]() |
![]() |
Villkoret i if
-satsen är ofta ett uttryck av logisk typ dvs bool
. Se
minilektion om logiska uttryck.
Villkoret kan dock vara av vilken typ som helst. Då tolkas 0, 0.0,
None
, ”” och tomma sekvenser (t.ex. []
och ()
) som False
medan
allt annat tolkas som True
.
Ofta vill man testa flera olika alternativ. Antag till exempel att vi
vill ha texterna ”negativt”, ”noll” eller ”positivt” utskrivna
beroende på värdet av x
. Koden för detta kan skrivas så här:
if x < 0:
print("negativt")
else:
if x == 0:
print("noll")
else:
print("positivt")
Det här är dock en så vanlig situation så att det kan skrivas så här:
if x < 0:
print('negativt')
elif x == 0:
print('noll')
else:
print('positivt')
Det blir tydligare att man har tre ”jämbördiga” alternativ.
Observera att denna kod är ekvivalent med koden högre upp - det är bara en skillnad i layout!
Denna layout går naturligtvis att bygga vidare med fler fall. Exempel:
print('Talet x är', end=' ')
if x <= -100:
print('mycket negativt')
elif x < 0:
print('negativt)
elif x == 0:
print('noll')
elif x < 100:
print('positivt')
else:
print('mycket positivt')
Följande är ett annat sätt att producera samma utskrift:
print("Talet x är ", end=' ')
if x <= -100 or x >= 100:
print("mycket ", end=' ')
if x < 0:
print("negativt")
elif x == 0:
print("noll")
else:
print("positivt")
Övningar#
Skriv de satser som skriver ut den största av tre variabler
x
,y
ochz
.Skriv de satser som gör att de tre variablerna
x
,y
ochz
skrivs ut i storleksordning.