Ga naar hoofdinhoud

Bouwsteen 3 — twee waardes tegelijk teruggeven

Hier bouw je op verder: Return-waarden en Tuples

Weet je dit niet meer zeker? Lees het terug voordat je verdergaat.

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​

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

Links moeten er net zoveel namen staan als er elementen zitten in de tuple rechts. Anders krijg je een ValueError.

Run​

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