Skip to main content

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

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