Bouwsteen 3 — de index teruggeven
Leerdoel: je verpakt je code in een functie en gebruikt return om
de index terug te geven waar je het doel vond.
Wat we willen
Twee dingen tegelijk:
- Niet alleen melden dat we het vonden, maar de positie (index) teruggeven.
- Het geheel in een functie stoppen die we kunnen aanroepen — zo kun je hem op meerdere lijsten gebruiken.
Een nieuw stukje syntax: enumerate
Om bij de index te kunnen, gebruiken we enumerate:
for i, waarde in enumerate(lijst):
print(i, waarde)
Dit geeft je in elke ronde twee dingen: de index i en de bijhorende
waarde.
Voorbeeld-output van enumerate
0 3
1 1
2 4
3 1
4 5
i telt mee: 0, 1, 2, 3, 4. Daarnaast krijg je waarde: 3, 1, 4, 1, 5.
Voorspel
Wat denk je dat dit print?
def zoek(lijst, doel):
for i, waarde in enumerate(lijst):
if waarde == doel:
return i
print(zoek([3, 1, 4, 1, 5], 4))
print(zoek([3, 1, 4, 1, 5], 1))
Antwoord
2
1
zoek([3, 1, 4, 1, 5], 4)→ 4 staat op index 2. Dereturn 2stopt de functie direct.zoek([3, 1, 4, 1, 5], 1)→ de eerste 1 staat op index 1. Daarna stopt de functie — de tweede 1 op index 3 zien we niet meer.
Run
Belangrijk: return stopt de functie
Zodra Python return i uitvoert, springt de functie eruit. De for-lus
gaat dus niet verder. Dat is precies wat we willen: stop bij de eerste
match.
Wat als we het niet vinden?
Probeer dit:
Wat zie je?
None
Als de functie nooit een return uitvoert, geeft Python automatisch
None terug. Dat is niet wat we willen — we beloofden eerder dat we -1
zouden teruggeven bij "niet gevonden". Dat lossen we in de volgende stap op.
Door naar bouwsteen 4: niet gevonden →