Betingelser
If -setninger
def f(x):
print("A", end="")
if (x == 0):
print("B", end="")
print("C", end="")
print("D")
f(0) # ABCD
f(1) # AD
Eksempel: funksjon for å beregne absolutt-verdi
# Eksemplene under regner ut absolutt-verdien av et tall. Dette er egentlig
# helt unødvendig, siden python har en funksjon for akkurat dette innebygget.
# Vi viser dem likevel for å illustrere at det kan gjøres på mange måter.
# Ved bruk av if -setning:
def abs1(n):
if (n < 0):
n = -n
return n
# Ved bruk av if -setning på én linje
def abs2(n):
if (n < 0): n = -n # bare gjør dette for svært korte uttrykk
return n
# Ved bruk av if -setning og flere return -setninger
def abs3(n):
if (n < 0):
return -n
return n
# uten bruk av if -setning
def abs4(n):
return (n < 0)*(-n) + (n>=0)*(n) # IKKE gjør dette!
# Ved bruk av if-else uttrykk
def abs5(n):
return n if n >= 0 else -n # Min favoritt
# uten bruk av if -setning
def abs6(n):
return n > 0 and n or -n # SKREKKELIG!
# alle virker:
print("abs1(5) =", abs1(5), "and abs1(-5) =", abs1(-5))
print("abs2(5) =", abs2(5), "and abs2(-5) =", abs2(-5))
print("abs3(5) =", abs3(5), "and abs3(-5) =", abs3(-5))
print("abs4(5) =", abs4(5), "and abs4(-5) =", abs4(-5))
print("abs5(5) =", abs5(5), "and abs5(-5) =", abs5(-5))
print("abs6(5) =", abs6(5), "and abs6(-5) =", abs6(-5))
If-else
def f(x):
print("A", end="")
if (x == 0):
print("B", end="")
print("C", end="")
else:
print("D", end="")
if (x == 1):
print("E", end="")
else:
print("F", end="")
print("G")
f(0)
f(1)
f(2)
Tilbake til absolutt-verdier:
def abs7(n):
if (n >= 0):
return n
else:
return -n
# eventuelt:
def abs8(n):
if (n >= 0):
sign = +1
else:
sign = -1
return sign * n
print("abs7(5) =", abs7(5), "and abs7(-5) =", abs7(-5))
print("abs8(5) =", abs8(5), "and abs8(-5) =", abs8(-5))
If-elif-else
def f(x):
print("A", end="")
if (x == 0):
print("B", end="")
print("C", end="")
elif (x == 1):
print("D", end="")
else:
print("E", end="")
if (x == 2):
print("F", end="")
else:
print("G", end="")
print("H")
f(0)
f(1)
f(2)
f(3)
Et annet eksempel
def number_of_roots(a, b, c):
""" Antall løsninger for ligning 0 = ax**2 + bx + c. """
d = b**2 - 4*a*c
if (d > 0):
return 2
elif (d == 0):
return 1
else:
return 0
print("0 = 4*x**2 + 5*x + 1 har", number_of_roots(4,5,1), "løsning(er).")
print("0 = 4*x**2 + 4*x + 1 har", number_of_roots(4,4,1), "løsning(er).")
print("0 = 4*x**2 + 3*x + 1 har", number_of_roots(4,3,1), "løsning(er).")
Et tredje eksempel
def get_grade(score):
if (score >= 90):
grade = "A"
elif (score >= 80):
grade = "B"
elif (score >= 70):
grade = "C"
elif (score >= 60):
grade = "D"
elif (score >= 40):
grade = "E"
else:
grade = "F"
return grade
print("103 -->", get_grade(103))
print(" 88 -->", get_grade(88))
print(" 70 -->", get_grade(70))
print(" 61 -->", get_grade(61))
print(" 22 -->", get_grade(22))
If-else -uttrykk
Se avsnittet om betinget verdi i Datatyper og operasjoner.
God stil
Merk at dette avsnittet omhandler stil og ikke korrekthet.
Negert betingelse:
|
|
Tom if
-setning:
|
|
Unødvendig sammenligning med True
/False
:
|
|
Bruk av if
i stedet for and
:
|
|
Bruk av ekstra if
i stedet for else
:
|
|
Bruk av ekstra if
i stedet for elif
:
|
|
Fancy bruk av python sin “aritmetikk”:
|
|
PS! Hvis du syntes det er morsomt med uleselig kode, kan du gjerne prøve deg på code golf etterhvert som du føler deg komfortabel med grunnleggende programmering.