Bouwsteen 3 — twee waardes tegelijk teruggeven
Leerdoel: je leert hoe je twee waardes uit een functie returnt met een tuple, en hoe je ze aan de andere kant weer uitpakt.
Wat we willen
Een functie die (klein, groot) teruggeeft, zodat de aanroeper er allebei
mee verder kan.
Twee waardes returnen
In Python:
return klein, groot # zonder haakjes
return (klein, groot) # met haakjes — betekent hetzelfde
Beide regels returnen een tuple met twee elementen.
Voorspel
Wat denk je dat dit print?
def max_en_min(lijst):
klein = groot = lijst[0]
for waarde in lijst:
if waarde < klein:
klein = waarde
elif waarde > groot:
groot = waarde
return klein, groot
resultaat = max_en_min([5, 2, 8, 1, 7, 4])
print(resultaat)
print(type(resultaat))
Antwoord
(1, 8)
<class 'tuple'>
De functie geeft een tuple terug — Python zet de twee waardes automatisch
in een tuple, ook al schreef je return klein, groot zonder haakjes.
Run
Code-omgeving wordt voorbereid…
Tuple uitpakken aan de andere kant
k, g = max_en_min([5, 2, 8, 1, 7, 4])
print(k) # 1
print(g) # 8
De twee namen links moeten even veel zijn als het aantal elementen in
de tuple rechts. Anders krijg je een ValueError.
Run
Code-omgeving wordt voorbereid…
Of: indexeren
Als je de tuple niet uitpakt, kun je de elementen ook met index benaderen:
r = max_en_min([5, 2, 8])
print(r[0]) # klein
print(r[1]) # groot
Maar uitpakken (k, g = …) is duidelijker — de namen zeggen wat je hebt.
Door naar stap 6: het complete algoritme →