Ga naar hoofdinhoud

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.

tip

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).

Spel laden...

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.

Spel laden...

Oplossing: zet het getal eerst om naar tekst met str():

Spel laden...

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.

Spel laden...

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).

Spel laden...

Oplossing: spring de code in met 4 spaties:

Spel laden...

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:

Spel laden...

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:

  1. Staat @play.when_key_pressed boven de functie? De decorator moet direct op de regel vóór def staan.
  2. Klopt de toetsnaam? Gebruik "space" voor spatie, "up" / "down" / "left" / "right" voor pijltjes, en kleine letters voor letters ("a", "b", ...).
Spel laden...

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:

  1. # vergeten: een hex-code begint altijd met #. Gebruik '#FF0000', niet 'FF0000'.
  2. Verkeerde lengte: een hex-code heeft # plus 6 tekens (of de korte vorm: # plus 3 tekens). '#FF00' werkt niet.
  3. Ongeldige tekens: alleen cijfers 0-9 en letters A-F mogen. '#GGGGGG' werkt niet.
  4. Typefout in kleurnaam: 'reed' in plaats van 'red'.
Spel laden...

Oplossing: gebruik een geldige hex-code, kleurnaam of RGB-tuple. Alle drie de cirkels hieronder zijn rood:

Spel laden...

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.

Spel laden...

Oplossing: voeg global score toe bovenaan de functie:

Spel laden...