Veelgemaakte fouten
Python geeft je altijd een foutmelding als er iets misgaat. Op deze pagina vind je de meest voorkomende fouten en hoe je ze oplost.
Lees de foutmelding altijd goed. Python vertelt je meestal precies wat er mis is en op welke regel.
AttributeError — typefout in een attribuutnaam
Foutmelding:
AttributeError: 'Circle' object has no attribute 'colour'. Did you mean: 'color'?
colour bestaat niet — de play-bibliotheek gebruikt de Amerikaanse spelling color (zonder u).
Oplossing: gebruik color in plaats van colour.
TypeError — getal optellen bij tekst
Foutmelding:
TypeError: can only concatenate str (not "int") to str
Je probeert een getal (int) direct samen te voegen met tekst (str). Dat mag niet in Python.
Oplossing: zet het getal eerst om naar tekst met str():
NameError — variabele niet gevonden
Foutmelding:
NameError: name 'cirkel' is not defined
Je gebruikt een variabele die nog niet bestaat, of je hebt de naam verkeerd gespeld.
Oplossing: controleer de spelling en zorg dat de variabele vóór gebruik aangemaakt is.
IndentationError — verkeerde inspringing
Foutmelding:
IndentationError: expected an indented block
De code onder een def, if, of for moet ingesprongen zijn (4 spaties of 1 tab).
Oplossing: spring de code in met 4 spaties:
SyntaxError — await buiten async
Foutmelding:
SyntaxError: 'await' outside function
await mag alleen gebruikt worden in een async def functie.
# FOUT
@play.when_key_pressed("space")
def wacht():
await play.timer(seconds=1)
Oplossing: voeg async toe voor def:
when_key_pressed reageert niet
Je hebt @play.when_key_pressed gebruikt maar er gebeurt niets als je op de toets drukt.
Controleer het volgende:
- Staat
@play.when_key_pressedboven de functie? De decorator moet direct op de regel vóórdefstaan. - Klopt de toetsnaam? Gebruik
"space"voor spatie,"up"/"down"/"left"/"right"voor pijltjes, en kleine letters voor letters ("a","b", ...).
ValueError — ongeldige kleur of hex-code
Foutmelding:
ValueError: You gave a color name we didn't understand: 'FF0000'
Try using a hex code like '#FF0000' or '#F00',
or the RGB number form e.g. '(0, 255, 255)'.
play begrijpt de kleur die je opgegeven hebt niet. Dit komt vaak voor bij hex-codes (sinds versie 3.3.3 beschikbaar). Een paar veelgemaakte fouten:
#vergeten: een hex-code begint altijd met#. Gebruik'#FF0000', niet'FF0000'.- Verkeerde lengte: een hex-code heeft
#plus 6 tekens (of de korte vorm:#plus 3 tekens).'#FF00'werkt niet. - Ongeldige tekens: alleen cijfers
0-9en lettersA-Fmogen.'#GGGGGG'werkt niet. - Typefout in kleurnaam:
'reed'in plaats van'red'.
Oplossing: gebruik een geldige hex-code, kleurnaam of RGB-tuple. Alle drie de cirkels hieronder zijn rood:
global vergeten
Foutmelding:
UnboundLocalError: local variable 'score' referenced before assignment
Je probeert een variabele buiten een functie aan te passen, maar vergeet global te schrijven.
Oplossing: voeg global score toe bovenaan de functie: