Skip to main content

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.