NameError: name 'blablaBla' is not defined

Erreur : le nom 'blablabla' n'est pas défini. Soit vous utilisez la variable (ou la fonction) blablabla avant de la définir soit vous vous êtes trompé en tapant le nom de la variable (ou de la fonction) blablabla. Attention Python est sensible à l'utilisation des majuscules. Il peut aussi arriver qu'on ait oublié des guillemets autour d'une chaîne de caractères (voir exemple 3)

Exemple  1:

def blablaBla(x):
return x*x
y = blablaBla(2)

NameError: name 'blablabla' is not defined

Ici nous avons mal orthographié 'blablabla' : il y un B majuscule dans le 3ième bla de la définition de la fonction et pas de majuscule dans l'appel de la fonction.

Exemple  2:
j = 5
x = 2 * i
i = 4

NameError: name 'i' is not defined

Origine du problème : on utilise le nom 'i' dans cette expression alors qu'il n'a jamais été défini avant. Soit on aurait dû initialiser la variable 'i' avant (déplacer l'instruction i=4 avant l'instruction x  = 2 * i) soit on a mal orthographié la variable (on voulait taper 'j' au lieu de 'i').


Exemple un peu plus subtil :

def f(x):
m = x*x
return m

f(5)
y = m

NameError: name 'm' is not defined

Origine du problème : la variable 'm' est une variable locale à la fonction 'f', elle ne "vit" qu'à l'intérieur de la fonction 'f'.


Exemple 3 :

monImage = ouvrirImage(teapot.png)

Solution :

monImage = ouvrirImage("teapot.png")

Explication : comme on a oublié les guillemets, python pense que teapot est le nom d'une variable... qui n'est donc pas définie.

» Comprendre les messages d'erreur