Villkor
{{ 'ml-heading-theory' | message }}
Ofta behöver instruktioner delas upp i olika fall beroende på ett villkor: "Om figuren är en cirkel, använd areaformeln , men om figuren är en triangel, använd " På den här sidan får du lära dig skriva kod som tolkar villkor och gör olika saker beroende på utfallet.
x = 20
if x > 20:
print('Hej!')
elif x >= 0:
print('Hejsan!')
else:
print('Hallå!')
if
, elif
och else
gör? Vad händer om du byter elif
mot if
på rad Kan du ändra på värdet i x
så att programmet skriver ut Hallå!
?Jämförelseoperatorer
Jämförelseoperatorer används för att jämföra två saker med varandra. De används t.ex. för att avgöra om en variabel har ett specifikt värde, om ett tal är litet nog eller om en lista är tillräckligt lång. Resultatet av en jämförelse är av datatypen bool, alltså antingen
True
eller False
.Om jämförelsen är sann får man resultatet True
och om den är falsk får man False
.
==
Utläses "är lika med" och returnerarTrue
om objekten är lika, t.ex.3 == 6/2
.!=
Utläses "är inte lika med" och returnerarTrue
om objekten inte är lika, t.ex.3 != 4
. Symbolen!=
kan jämföras med tecknet inom matematiken.>
Olikheten "är större än" returnerarTrue
om det första talet är större än det andra, t.ex.4 > 3
.<
Olikheten "är mindre än" returnerarTrue
om det första talet är mindre än det andra, t.ex.5 < 10
.>=
,<=
Som>
respektive<
, men returnerarTrue
även om talen är lika.>=
och<=
kan jämföras med tecknen respektive i matematiken.
Det går även att skriva dubbla olikheter för att undersöka om ett värde ligger inom ett intervall, t.ex.
0 < 5 <= 28
==
fungerar även för andra datatyper.Följande program gör ett antal jämförelser och skriver ut resultatet.
x = 5
print(x == 7)
print(x != 7)
print(-10 < x < 10)
Utan att köra programmet, avgör vad som kommer att skrivas ut.
if
-sats
if
-satser används för kodstycken som endast ska köras om ett visst villkor är uppfyllt. För att skriva en sådan sats börjar man med ordet if
, alltså "om", följt av ett villkor och sedan ett kolon. För att markera den kod som bara ska köras om villkoret är uppfyllt använder man indrag.
x = 5
if x == 5:
print('Talet är fem!')
Det här exemplet kommer bara att skriva ut Talet är fem!
om villkoret x == 5
faktiskt är sant, alltså om x
har tilldelats värdet på rad Om villkoret är falskt hoppar programmet över de indragna raderna och fortsätter under dem.
else
Man vill ofta att programmet gör olika saker beroende på om ett villkor är sant eller falskt. Då använder man en else
-sats nedanför if
-satsen genom att skriva ordet else
, alltså "annars", följt av ett kolon. All efterföljande indragen kod kommer då bara att köras om villkoret i if
-satsen är falskt.
x = 6
if x == 5:
print('Talet är fem!')
else:
print('Talet är inte fem!')
Man kan se det som att en if
-sats följd av en else
-sats skapar en struktur på formen "Om villkoret är sant, gör si. Annars, gör så."
elif
Det händer ofta att man vill göra mer komplicerade förgreningar i sitt program. Då är det bekvämt att använda elif
-satser, som används efter en if
-sats eller en annan elif
-sats.
x = 10
if x == 5:
print('Talet är fem!')
elif x == 10:
print('Talet är tio!')
else:
print('Talet är varken fem eller tio!')
elif
som en kombination av else
och if
, där villkoret bara undersöks om de ovanstående villkoren är falska.Vad kommer att hända om man kör följande program?
x = 10
if x > 0: if x > 100: print('Ett stort tal!') else: print('Ett ganska stort tal!')
else: if x < -100: print('Ett litet tal!') else: print('Ett ganska litet tal!')
Vad händer om man ändrar första raden till x = -123
?
Logiska operatorer
Logiska operatorer används för att slå ihop eller ändra villkor. Ett vanligt fall är att man har två villkor som ska gälla samtidigt, t.ex. att två variabler ska vara positiva. Då används operatorn and
, dvs. "och", mellan villkoren.
x = 7
y = 18
if x>0 and y>0:
print('Punkten ligger i första kvadranten!')
Ibland har man två villkor där minst ett ska gälla. Då används operatorn or
, dvs. "eller", mellan de två villkoren.
x = 5
y = -2
if x<0 or y<0:
print('Punkten ligger INTE i första kvadranten!')
Man kan också vända ett villkor till dess motsats med operatorn not
, dvs. "inte". Om ett tal inte är större än noll så måste det vara noll eller mindre. Exemplet nedan blir därför samma sak som att använda villkoret x <= 0
.
x = -3
if not x>0:
print('Talet är INTE större än noll!')
Programmet nedan utför beräkningen om talet är eller
x = 4 if x == 3: print(x**2 + 9)
elif x == 4: print(x**2 + 9)
Visa hur man kan använda logiska operatorer för att förenkla programmet så att beräkningen bara behöver skrivas en gång i koden.
{{ 'ml-heading-exercises' | message }}
Ofta behöver instruktioner delas upp i olika fall beroende på ett villkor: "Om figuren är en cirkel, använd areaformeln , men om figuren är en triangel, använd " På den här sidan får du lära dig skriva kod som tolkar villkor och gör olika saker beroende på utfallet.
x = 20
if x > 20:
print('Hej!')
elif x >= 0:
print('Hejsan!')
else:
print('Hallå!')
if
, elif
och else
gör? Vad händer om du byter elif
mot if
på rad Kan du ändra på värdet i x
så att programmet skriver ut Hallå!
?Jämförelseoperatorer
Jämförelseoperatorer används för att jämföra två saker med varandra. De används t.ex. för att avgöra om en variabel har ett specifikt värde, om ett tal är litet nog eller om en lista är tillräckligt lång. Resultatet av en jämförelse är av datatypen bool, alltså antingen
True
eller False
.Om jämförelsen är sann får man resultatet True
och om den är falsk får man False
.
==
Utläses "är lika med" och returnerarTrue
om objekten är lika, t.ex.3 == 6/2
.!=
Utläses "är inte lika med" och returnerarTrue
om objekten inte är lika, t.ex.3 != 4
. Symbolen!=
kan jämföras med tecknet inom matematiken.>
Olikheten "är större än" returnerarTrue
om det första talet är större än det andra, t.ex.4 > 3
.<
Olikheten "är mindre än" returnerarTrue
om det första talet är mindre än det andra, t.ex.5 < 10
.>=
,<=
Som>
respektive<
, men returnerarTrue
även om talen är lika.>=
och<=
kan jämföras med tecknen respektive i matematiken.
Det går även att skriva dubbla olikheter för att undersöka om ett värde ligger inom ett intervall, t.ex.
0 < 5 <= 28
==
fungerar även för andra datatyper.Följande program gör ett antal jämförelser och skriver ut resultatet.
x = 5
print(x == 7)
print(x != 7)
print(-10 < x < 10)
Utan att köra programmet, avgör vad som kommer att skrivas ut.
if
-sats
if
-satser används för kodstycken som endast ska köras om ett visst villkor är uppfyllt. För att skriva en sådan sats börjar man med ordet if
, alltså "om", följt av ett villkor och sedan ett kolon. För att markera den kod som bara ska köras om villkoret är uppfyllt använder man indrag.
x = 5
if x == 5:
print('Talet är fem!')
Det här exemplet kommer bara att skriva ut Talet är fem!
om villkoret x == 5
faktiskt är sant, alltså om x
har tilldelats värdet på rad Om villkoret är falskt hoppar programmet över de indragna raderna och fortsätter under dem.
else
Man vill ofta att programmet gör olika saker beroende på om ett villkor är sant eller falskt. Då använder man en else
-sats nedanför if
-satsen genom att skriva ordet else
, alltså "annars", följt av ett kolon. All efterföljande indragen kod kommer då bara att köras om villkoret i if
-satsen är falskt.
x = 6
if x == 5:
print('Talet är fem!')
else:
print('Talet är inte fem!')
Man kan se det som att en if
-sats följd av en else
-sats skapar en struktur på formen "Om villkoret är sant, gör si. Annars, gör så."
elif
Det händer ofta att man vill göra mer komplicerade förgreningar i sitt program. Då är det bekvämt att använda elif
-satser, som används efter en if
-sats eller en annan elif
-sats.
x = 10
if x == 5:
print('Talet är fem!')
elif x == 10:
print('Talet är tio!')
else:
print('Talet är varken fem eller tio!')
elif
som en kombination av else
och if
, där villkoret bara undersöks om de ovanstående villkoren är falska.Vad kommer att hända om man kör följande program?
x = 10
if x > 0: if x > 100: print('Ett stort tal!') else: print('Ett ganska stort tal!')
else: if x < -100: print('Ett litet tal!') else: print('Ett ganska litet tal!')
Vad händer om man ändrar första raden till x = -123
?
Logiska operatorer
Logiska operatorer används för att slå ihop eller ändra villkor. Ett vanligt fall är att man har två villkor som ska gälla samtidigt, t.ex. att två variabler ska vara positiva. Då används operatorn and
, dvs. "och", mellan villkoren.
x = 7
y = 18
if x>0 and y>0:
print('Punkten ligger i första kvadranten!')
Ibland har man två villkor där minst ett ska gälla. Då används operatorn or
, dvs. "eller", mellan de två villkoren.
x = 5
y = -2
if x<0 or y<0:
print('Punkten ligger INTE i första kvadranten!')
Man kan också vända ett villkor till dess motsats med operatorn not
, dvs. "inte". Om ett tal inte är större än noll så måste det vara noll eller mindre. Exemplet nedan blir därför samma sak som att använda villkoret x <= 0
.
x = -3
if not x>0:
print('Talet är INTE större än noll!')
Programmet nedan utför beräkningen om talet är eller
x = 4 if x == 3: print(x**2 + 9)
elif x == 4: print(x**2 + 9)
Visa hur man kan använda logiska operatorer för att förenkla programmet så att beräkningen bara behöver skrivas en gång i koden.