Er gaat iets mis — top-3 fouten
Leerdoel: je herkent veelvoorkomende foutmeldingen en begrijpt waarom ze optreden. Een fout is geen tegenslag — het is informatie.
1. return -1 op de verkeerde inspringing
Geen Python-foutmelding — wél een logische fout. De functie returnt te vroeg en geeft daardoor verkeerde antwoorden.
Voorbeeld + uitleg
def zoek(lijst, doel):
for i, waarde in enumerate(lijst):
if waarde == doel:
return i
return -1 # ← inspringing fout: dit zit IN de for
Door de inspringing zit return -1 binnen de for-lus. Bij de eerste
iteratie returnt de functie al — meestal verkeerd.
Fix: zorg dat return -1 even ver ingesprongen staat als for, niet als
if. In Python is inspringing geen versiering — het bepaalt de
structuur.
def zoek(lijst, doel):
for i, waarde in enumerate(lijst):
if waarde == doel:
return i
return -1 # ← op functie-niveau, na de for
2. == vs =
SyntaxError: invalid syntax
Of erger: geen foutmelding maar verkeerd gedrag.
Voorbeeld + uitleg
if waarde = doel: # SyntaxError
return i
=is toekenning:x = 5zet de waarde 5 in x.==is vergelijking:if x == 5vraagt of x gelijk is aan 5.
In een if heb je een vergelijking nodig.
Fix:
if waarde == doel:
return i
Onthouden: één = is toekennen, twee == is vergelijken.
3. IndexError: list index out of range
IndexError: list index out of range
Je vraagt om lijst[i] voor een i die niet bestaat.
Voorbeeld + uitleg
lijst = [10, 20, 30]
for i in range(len(lijst) + 1): # 0, 1, 2, 3 — te ver!
print(lijst[i])
Bij i = 3 bestaat lijst[3] niet (geldige indexen zijn 0, 1, 2). Python
gooit IndexError.
Fix: laat de + 1 weg. range(len(lijst)) produceert al precies
0, 1, …, len-1.
Beter nog: gebruik for waarde in lijst: of
for i, waarde in enumerate(lijst):. Dan loop je gegarandeerd niet te
ver — Python regelt het zelf.
Door naar stap 11: cheatsheet →