Intermédiaire
🧠 Fondamentaux
20 XP
0 personnes ont réussi
Portee locale vs globale
En Python, quand tu assignes une valeur a une variable dans une fonction, Python considere cette variable comme locale a la fonction. Ca veut dire que si une variable globale a le meme nom, la variable locale la masque.
Python voit que compteur est assigne dans la fonction, donc il le traite comme local. Mais au moment de lire compteur + 1, la variable locale n'a pas encore de valeur.
Pour modifier une variable globale dans une fonction, il faut utiliser le mot-cle global. Mais en general, on evite les variables globales. On prefere passer et retourner des valeurs.
Écris une fonction créer_compteur(depart) qui renvoie une fonction. Cette fonction renvoyee, quand on l'appelle, incremente le compteur de 1 et renvoie la nouvelle valeur. Utilise le mot-cle nonlocal pour que la fonction interne puisse modifier la variable de la fonction externe.
Exemple : c = créer_compteur(0) c() renvoie 1 c() renvoie 2 c() renvoie 3