Return
Je kunt functies maken met parameters. In deze les leer je hoe een functie een resultaat teruggeeft dat je kan opslaan en verder gebruiken: return.
return geeft een waarde terug
Tot nu toe printten je functies hun resultaat. Maar wat als je het resultaat wilt gebruiken in de rest van je programma — bijvoorbeeld om verder te rekenen? Daarvoor gebruik je return:
def verdubbel(getal):
return getal * 2
resultaat = verdubbel(5)
print(resultaat) # 10
print(verdubbel(7) + 1) # 15
return getal * 2geeft de uitkomst terug uit de functie.resultaat = verdubbel(5)slaat de teruggegeven waarde op.- Je kunt het resultaat direct in een berekening of f-string gebruiken.
print vs return
Dit is een van de meest gemaakte fouten door beginners:
print() | return | |
|---|---|---|
| Wat doet het? | Toont iets op het scherm | Geeft een waarde terug uit de functie |
| Kun je het opslaan? | Nee | Ja: x = mijn_functie(...) |
| Geschikt voor? | Output tonen | Berekeningen, beslissingen |
def met_print(x):
print(x * 2) # toont op scherm
def met_return(x):
return x * 2 # geeft waarde terug
a = met_print(5) # toont 10, a wordt None
b = met_return(5) # toont niets, b wordt 10
print(b + 1) # 11
Probeer zelf
Schrijf een functie kwadraat(getal) die getal * getal teruggeeft. Sla het resultaat op in een variabele en print het.
def kwadraat(getal): return ... resultaat = kwadraat(6) print(resultaat)
✅ Oplossing
def kwadraat(getal):
return getal * getal
resultaat = kwadraat(6)
print(resultaat)
Uitvoer: 36.
Predict
Wat print dit programma? Let goed op som en x.
def optellen(a, b):
return a + b
def begroet(naam):
print(f"Hallo, {naam}!")
som = optellen(3, 5)
print(som)
x = begroet("Alex")
print(x)
Bekijk het antwoord
8
Hallo, Alex!
None
somis8(de return vanoptellen).begroet("Alex")print "Hallo, Alex!" maar geeft niets terug — dusxwordtNone.
Run
Voer de code uit en controleer.
Investigate
Wat gebeurt er als je optellen(3, 5) aanroept zonder het resultaat op te slaan? Probeer dit:
def optellen(a, b):
return a + b
optellen(3, 5)
Bekijk het antwoord
Geen uitvoer. De functie berekent 8, maar omdat je het resultaat nergens opslaat én niet print, gaat het verloren. return toont niets op het scherm — daar is print() voor.
Er gaat iets mis
Een typische beginnersfout: je vergeet return.
def dubbel(x):
x * 2
resultaat = dubbel(5)
print(resultaat)
Output:
None
Waarom? De functie berekent x * 2 wel, maar geeft het resultaat nooit terug. Een functie zónder return levert automatisch None op — "geen waarde".
Oplossing: Voeg return toe:
def dubbel(x):
return x * 2
Stelregel: als je een functie maakt om een waarde te berekenen, hoort er een return in. Maakt de functie alleen iets zichtbaar op het scherm, dan is print() genoeg.
Modify
Pas de functie oppervlakte aan zodat hij de uitkomst teruggeeft met return.
def oppervlakte(breedte, hoogte): print(breedte * hoogte) print(oppervlakte(5, 3)) # Moet 15 zijn
💡 Tip
Vervang print(breedte * hoogte) door return breedte * hoogte.
✅ Oplossing
def oppervlakte(breedte, hoogte):
return breedte * hoogte
print(oppervlakte(5, 3)) # 15
Make: max van twee
Schrijf een functie max_van_twee(a, b) die twee getallen ontvangt en het grootste teruggeeft. Gebruik if/else in je functie.
def max_van_twee(a, b):
if ...:
return ...
else:
return ...
print(max_van_twee(10, 20)) # Moet 20 zijn
print(max_van_twee(7, 3)) # Moet 7 zijn
print(max_van_twee(5, 5)) # Moet 5 zijn💡 Tip
Als a > b, return a; anders return b. Bij gelijke waarden maakt het niet uit welke je teruggeeft.
✅ Oplossing
def max_van_twee(a, b):
if a > b:
return a
else:
return b
print(max_van_twee(10, 20))
print(max_van_twee(7, 3))
print(max_van_twee(5, 5))
Make Bonus: Rekenmachine-API
Bouw een complete rekenmachine met vier functies die elk een resultaat teruggeven: optellen(a, b), aftrekken(a, b), vermenigvuldigen(a, b), en delen(a, b). Bij delen moet je eerst checken of b niet gelijk is aan 0 — als dat zo is, geef de tekst "Fout: delen door 0!" terug.
Verwachte uitvoer (bij a = 20, b = 4):
20 + 4 = 24
20 - 4 = 16
20 x 4 = 80
20 / 4 = 5.0
def optellen(a, b):
return a + b
def aftrekken(a, b):
return ...
def vermenigvuldigen(a, b):
return ...
def delen(a, b):
if ...:
return "Fout: delen door 0!"
else:
return ...
a = 20
b = 4
print(f"{a} + {b} = {optellen(a, b)}")
print(f"{a} - {b} = {aftrekken(a, b)}")
print(f"{a} x {b} = {vermenigvuldigen(a, b)}")
print(f"{a} / {b} = {delen(a, b)}")💡 Tip
aftrekken en vermenigvuldigen zijn één-regel-functies (return a - b, return a * b). Bij delen: if b == 0: → return de foutmelding; else: → return a / b.
✅ Oplossing
def optellen(a, b):
return a + b
def aftrekken(a, b):
return a - b
def vermenigvuldigen(a, b):
return a * b
def delen(a, b):
if b == 0:
return "Fout: delen door 0!"
else:
return a / b
Een variabele houdt één waarde vast. Maar wat als je tien waardes hebt — bijvoorbeeld een rij namen, of een serie cijfers? Daarvoor zijn lijsten.