Bouwsteen 3 — twee waardes tegelijk teruggeven
Hier bouw je op verder
- Python Return-waarden
- Python Tuples
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 geven een tuple met twee elementen terug.
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
Links moeten er net zoveel namen staan als er elementen zitten in
de tuple rechts. Anders krijg je een ValueError.
Run
Code-omgeving wordt voorbereid…
Of: indexeren
Pak je de tuple niet uit, dan kun je de elementen ook met index benaderen:
r = max_en_min([5, 2, 8])
print(r[0]) # 2 (klein)
print(r[1]) # 8 (groot)
Maar uitpakken (k, g = …) is duidelijker — de namen zeggen wat je hebt.
Door naar het complete algoritme.