Forum Python

Fil d’Ariane du forum – Vous êtes ici :ForumLangage Python: Langage PythonPortée de variable (ScopeError)
Please or S’enregistrer to create posts and topics.

Portée de variable (ScopeError)

J'ai cette erreur : UnboundLocalError: local variable 'x' referenced before assignment. Que faire ?

L'erreur UnboundLocalError survient lorsque vous essayez d'utiliser une variable locale avant de lui assigner une valeur dans une fonction. En Python, toute variable modifiée à l'intérieur d'une fonction est considérée comme locale, sauf si elle est explicitement déclarée comme globale.

Pour corriger cette erreur, vous avez deux options :

Assigner une valeur à la variable avant de l'utiliser dans la fonction.
Utiliser le mot-clé global si vous souhaitez utiliser une variable globale à l'intérieur de la fonction.
Exemples :

# Option 1 : Initialiser la variable locale
def ma_fonction():
    x = 5  # Initialisez x localement
    print(x)

ma_fonction()

# Option 2 : Utiliser global
x = 10

def autre_fonction():
    global x  # Utiliser la variable globale x
    x += 5
    print(x)

autre_fonction()