Ett villkor är en fråga som man besvaras ja eller nej. Exempelvis är 2 större än 1? Det är alltså ett logiskt uttyck som kan antingen vara sant eller falskt.
I Python motsvarar det True eller False .
if-satsen är en enkel selektion som avgörs om villkoret är sant eller falskt.
Ditt program kan alltså ta olika vägar utifrån om uttrycket är True eller False.
Sats(er)
Villkor
FLÖDESSCHEMA
Sant
Falskt
PYTHONKOD
if villkor:
sats(er)
Endast om villkoret är uppfyllt utförs sats(erna).
Tänk på att raden efter kolonet (:) måste vara indraget och tillhör pythons syntax. Indragningen avgör när en if-sats avslutas.
if 2 > 1:
#Om villkoret är SANT ska denna sats utföras
print("2 är större än 1!!!")
# Ingen indragnong, if-satsen har avslutats
print("Ok lätt som en plätt. Programmet avslutas.")
VILLKOR
Bool är en förkortning för boolean och är döpt efter George Boole som studerade logik.
Det är en datatyp som bara kan innehålla ett av värdena True (sant) eller False (falskt). Om vi skulle jämföra om 3 > 2 skulle detta ge True. 3 < 2 skulle ge False.
a_bool_variable = 3 > 2 # True
another_bool = 3 < 2 # False
game_over = False
is_alive = True
... är en symbol för något som ska utföras. Exempelvis plustecknet vid matematisk addition.
I Python finns flera olika operatorer. Vi ska utforska de aritmetiska (matematiska)-, relations-, logiska- och förändringsoperatorerna.
3 + 4
operand
operand
operator
Jämförelse | Symbol | Exempel | Värde |
---|---|---|---|
lika med | == | a == b | False |
inte lika med | != | a != b | True |
större än | > | a > b | False |
större än eller lika med | >= | a >= b | False |
mindre än | < | a < b | True |
mindre än lika med | <= | a <= b | True |
Tar in två värden och jämför dem. Exempel om a = 3, b = 5.
Värdena kan vara av vilken datatyp som helst int, float, str, bool. Komma bara ihåg att de du jämför med måsta vara av samma datatyp! Kallas även ibland för jämförelseoperatorer.
Avgör om följande uttryck är sant (true) eller falskt (false)
Om a = 3, b = 4, c = 4, så är:
a) a == b _________ g) b > a _________
b) b == c _________ h) b <= c _________
c) c == a _________ i) a <= c _________
d) a < b _________ j) b >= c _________
e) a > b _________ k) c <= a _________
f) b < a _________
Vad är nu skillnaden mellan att använda
=
==
eller
Alternativ 1
Villkor
FLÖDESSCHEMA
Sant
Falskt
PYTHONKOD
if villkor:
alternativ 1
else:
alternativ 2
If-else satsen är ett val mellan två alternativ, ett tvåvägsval. Till skillnad från if-satsen utförs även ett andra alternativ om villkoret är falskt.
Alternativ 2
age = int(input("Ange din ålder"))
if age >= 18:
print("Du är myndig. Körkort, ja!")
else:
remain = 18 - age
print(f'Du får vänta {remain} år in du är 18 år.')
Är värdet i age är större än eller lika med 18? Om ja, SANT, annars FALSKT.
if-else satsen kan endast hantera ett val mellan två situationer, SANT eller FALSKT.
I många situationer kan man behöva hantera tre eller fler eller fler alternativ.
Studera följande intervall:
Antal poäng | Betyg |
---|---|
36 | A |
25 | C |
18 | E |
points = int(input("Ange poängen på provet:"))
if points >= 36:
print("Betyg A")
if points >= 25:
print("Betyg C")
if points >= 18:
print("Betyg E")
else:
print("Omprov :-(")
Villkor med flera alternativ
Om points = 37, vad skrivs ut?
points = int(input("Ange poängen på provet:"))
if points >= 36:
print("Betyg A")
elif points >= 25:
print("Betyg C")
elif points >= 18:
print("Betyg E")
else:
print("Omprov :-(")
Villkor med flera alternativ
Om points = 37, vad skrivs ut? Skillnad mot förra exemplet?
Logisk operator | Symbol | Exempel | Värde |
---|---|---|---|
OCH | and | uttryck1 and uttryck2 |
true om båda är sanna annars false |
ELLER | or | uttryck1 or uttryck2 |
true om minst ett är sant, annars false |
INTE | not | not uttryck | false om uttrycket är sant, annars true |
S.k boolska uttryck används för att kombinera olika villkor
x = int(input("Ange ett tal:"))
if x >= 100 and x <= 200:
print("Det okända talet är mellan 100 och 200")
else:
print("Utanför intervallet...")
Logiska operatorn som är sann då endast alla uttryck är sanna (eng. AND)
Här måste x både vara större än 100 och mindre än 200 för att hela utrycket ska vara SANT.
im_tired = False
is_bedtime = True
if im_tired == True or is_bedtime == True :
print("Go to sleep")
else:
print("Stay up until you are tired...Zzzz")
Logiska operatorn som är SANT då minst ett av utrycken är sanna.
I ett uttryck med or räcker det att ett av villkoren är sanna
game_over = False
if not game_over:
print("Spelet avslutas")
else:
print("Du får fortsätta spela")
Logiska operatorn INTE, not, då FALSKT blir SANT, eller SANT blir FALSKT
Med not blir det boolska värdet motsatsen. I detta fall blir False till True.
Avgör om följande uttryck är sanna eller falsk. Sätt true för sant och false för falskt.
a) 1 < 2 and 5 > 4 _________
b) 1 == 2 and 1 < 2 _________
c) 1 == 2 or 1 == 1 ________
d) 3 <= 4 or 3 >= 4 ________
e) 3 <= 4 and 3 >= 4 _________
f) 2 < 1 or 2 == 0 _________
g) 5 < 5 and 5 > 5 _________
h) 5 < 5 or 5 > 5 _________
Om a = 1, b = 2, och c = 3:
i) a < b and a > b _________
j) a < b or a > b _________
k) a < c and b < c ________
l) a > c or c > b ________
m) a == b and a < c _________
n) a <= b and not (a <= c) _________
o) not (b <= c) or b >= a _________