Parameters en Return
In de vorige les maakten we functies die altijd hetzelfde doen. Nu leren we functies maken die input ontvangen en een resultaat teruggeven.
Parameters
Een parameter is een variabele die je aan een functie meegeeft:
def begroet(naam):
print(f"Hallo, {naam}!")
begroet("Lisa") # Hallo, Lisa!
begroet("Ahmed") # Hallo, Ahmed!
Het werkt als een variabele die automatisch een waarde krijgt wanneer je de functie aanroept:
# Als je begroet("Lisa") aanroept, gebeurt er dit:
# naam = "Lisa"
# print(f"Hallo, {naam}!")
Meerdere parameters
Een functie kan meerdere parameters hebben, gescheiden door komma's:
def stel_voor(naam, leeftijd):
print(f"Ik ben {naam} en ik ben {leeftijd} jaar.")
stel_voor("Sara", 15)
stel_voor("Daan", 16)
Return
Met return geeft een functie een waarde terug. Die waarde kun je opslaan in een variabele:
def verdubbel(getal):
return getal * 2
resultaat = verdubbel(5)
print(resultaat) # 10
Zonder return geeft een functie niks terug (ze print alleen of doet iets). Met return kun je het resultaat gebruiken:
def optellen(a, b):
return a + b
# Het resultaat opslaan
som = optellen(3, 5)
print(som) # 8
# Of direct gebruiken
print(optellen(10, 20)) # 30
Print vs Return
Dit is een belangrijk verschil:
# Deze functie PRINT het resultaat
def optellen_print(a, b):
print(a + b)
# Deze functie GEEFT het resultaat TERUG
def optellen_return(a, b):
return a + b
# Met print kun je het resultaat niet opslaan
optellen_print(3, 5) # print 8
x = optellen_print(3, 5) # x is None!
# Met return kun je het resultaat wél opslaan
y = optellen_return(3, 5) # y is 8
print(y * 2) # 16
Oefening 1
Schrijf een functie begroet die een naam ontvangt en een begroeting print.
def begroet(naam):
...
begroet("Jan")
begroet("Sophie")
begroet("Python")💡 Tip
Gebruik een f-string: print(f"Hallo, {naam}!").
✅ Oplossing
def begroet(naam):
print(f"Hallo, {naam}!")
begroet("Jan")
begroet("Sophie")
begroet("Python")
Oefening 2
Schrijf een functie oppervlakte die de breedte en hoogte ontvangt en de oppervlakte teruggeeft met return.
def oppervlakte(breedte, hoogte): ... # Test je functie print(oppervlakte(5, 3)) # 15 print(oppervlakte(10, 10)) # 100 print(oppervlakte(7, 2)) # 14
💡 Tip
De oppervlakte is breedte * hoogte. Gebruik return om het resultaat terug te geven.
✅ Oplossing
def oppervlakte(breedte, hoogte):
return breedte * hoogte
print(oppervlakte(5, 3)) # 15
print(oppervlakte(10, 10)) # 100
print(oppervlakte(7, 2)) # 14
Oefening 3
Schrijf een functie is_volwassen die een leeftijd ontvangt en True of False teruggeeft.
def is_volwassen(leeftijd): ... print(is_volwassen(20)) # True print(is_volwassen(15)) # False print(is_volwassen(18)) # True
💡 Tip
Je kunt direct het resultaat van een vergelijking teruggeven: return leeftijd >= 18.
✅ Oplossing
def is_volwassen(leeftijd):
return leeftijd >= 18
print(is_volwassen(20)) # True
print(is_volwassen(15)) # False
print(is_volwassen(18)) # True
Oefening 4
Schrijf een functie max_van_twee die twee getallen ontvangt en het grootste teruggeeft.
def max_van_twee(a, b): ... print(max_van_twee(10, 20)) # 20 print(max_van_twee(7, 3)) # 7 print(max_van_twee(5, 5)) # 5
💡 Tip
Gebruik een if/else: als a > b, return a, anders return b.
✅ Oplossing
def max_van_twee(a, b):
if a > b:
return a
else:
return b
print(max_van_twee(10, 20)) # 20
print(max_van_twee(7, 3)) # 7
print(max_van_twee(5, 5)) # 5
Oefening 5
Schrijf een functie korting_prijs die een prijs en een kortingspercentage ontvangt, en de nieuwe prijs teruggeeft.
def korting_prijs(prijs, percentage): ... print(korting_prijs(100, 20)) # 80.0 print(korting_prijs(50, 10)) # 45.0 print(korting_prijs(200, 50)) # 100.0
💡 Tip
De korting is prijs * percentage / 100. De nieuwe prijs is prijs - korting.
✅ Oplossing
def korting_prijs(prijs, percentage):
korting = prijs * percentage / 100
return prijs - korting
print(korting_prijs(100, 20)) # 80.0
print(korting_prijs(50, 10)) # 45.0
print(korting_prijs(200, 50)) # 100.0