Ga naar hoofdinhoud

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

Python
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

Python
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 →