Er gaat iets mis!
Geen paniek! Hieronder vind je de meest voorkomende fouten en hoe je ze oplost.
Foutmeldingen
SyntaxError: invalid syntax
Je hebt een typfout in je code. Veelvoorkomende oorzaken:
# Haakje vergeten
print("Hallo" # ❌ SyntaxError
print("Hallo") # ✅
# Dubbele punt vergeten bij if/for/def
if leeftijd >= 18 # ❌ SyntaxError
if leeftijd >= 18: # ✅
# Aanhalingsteken vergeten
print("Hallo) # ❌ SyntaxError
print("Hallo") # ✅
IndentationError: expected an indented block
De code na if, for, def of else moet inspringen met 4 spaties.
# ❌ Geen inspringing
if leeftijd >= 18:
print("Volwassen")
# ✅ Met inspringing
if leeftijd >= 18:
print("Volwassen")
NameError: name 'x' is not defined
Je gebruikt een variabele die niet bestaat. Veelvoorkomende oorzaken:
# Typfout in de naam
naam = "Sara"
print(Name) # ❌ NameError (hoofdletter!)
print(naam) # ✅
# Variabele nog niet aangemaakt
print(leeftijd) # ❌ NameError
leeftijd = 15
print(leeftijd) # ✅
# Vergeten aanhalingstekens bij tekst
print(Hallo) # ❌ NameError
print("Hallo") # ✅
TypeError: can only concatenate str to str
Je probeert tekst en een getal samen te plakken met +.
leeftijd = 15
# ❌ TypeError
print("Ik ben " + leeftijd + " jaar")
# ✅ Gebruik een komma
print("Ik ben", leeftijd, "jaar")
# ✅ Of een f-string
print(f"Ik ben {leeftijd} jaar")
ZeroDivisionError: division by zero
Je deelt door 0, wat niet kan.
# ❌ ZeroDivisionError
print(10 / 0)
# ✅ Controleer eerst
if noemer != 0:
print(10 / noemer)
IndexError: list index out of range
Je probeert een element op te vragen dat niet bestaat in de lijst.
namen = ["Ali", "Sara", "Daan"]
# ❌ IndexError (er is geen index 3)
print(namen[3])
# ✅ Index 0, 1 of 2
print(namen[2]) # "Daan"
print(namen[-1]) # "Daan" (laatste)
KeyError: 'sleutel'
Je zoekt een sleutel op die niet in de dictionary staat.
leerling = {"naam": "Sara"}
# ❌ KeyError
print(leerling["leeftijd"])
# ✅ Controleer eerst
if "leeftijd" in leerling:
print(leerling["leeftijd"])
Veelgemaakte fouten
= vs ==
= slaat een waarde op, == vergelijkt twee waarden.
# ❌ Dit slaat 18 op in leeftijd
if leeftijd = 18:
# ✅ Dit vergelijkt leeftijd met 18
if leeftijd == 18:
Inspringen vergeten
Code in een if, for, def of else blok moet inspringen.
# ❌ Fout
for i in range(5):
print(i)
# ✅ Goed
for i in range(5):
print(i)
range() eindigt één eerder
range(5) geeft 0, 1, 2, 3, 4 — niet 5!
# ❌ Print 0 t/m 4
for i in range(5):
print(i)
# ✅ Print 1 t/m 5
for i in range(1, 6):
print(i)
Aanhalingstekens vergeten bij strings
Tekst moet altijd tussen aanhalingstekens staan.
# ❌ Python denkt dat Hallo een variabele is
print(Hallo)
# ✅
print("Hallo")
Functie aanroepen zonder haakjes
def zeg_hallo():
print("Hallo!")
# ❌ Dit doet niks (print alleen de functie zelf)
zeg_hallo
# ✅ Met haakjes
zeg_hallo()
print() vs return
print() toont iets op het scherm. return geeft een waarde terug die je kunt opslaan.
# ❌ Je kunt het resultaat niet opslaan
def optellen(a, b):
print(a + b)
x = optellen(3, 5) # x is None!
# ✅ Met return kun je het resultaat gebruiken
def optellen(a, b):
return a + b
x = optellen(3, 5) # x is 8
Tips
Lees de foutmelding!
Python vertelt je precies wat er mis is en op welke regel. Lees altijd de laatste regel van de foutmelding:
Traceback (most recent call last):
File "main.py", line 3
print("Hallo"
^
SyntaxError: '(' was never closed
Dit vertelt je: op regel 3 is een haakje niet gesloten.
Test je code stap voor stap
Voeg print() toe om te zien wat je variabelen bevatten:
x = 10
y = 3
resultaat = x / y
print(f"x = {x}")
print(f"y = {y}")
print(f"resultaat = {resultaat}")
Gebruik de Playground
Probeer kleine stukjes code uit in de Playground voordat je ze in je programma zet. Zo kun je snel testen of iets werkt.