Intermédiaire
🧠 Fondamentaux
20 XP
0 personnes ont réussi
Variables locales et globales
En Python, une variable créée dans une fonction n'existe que dans cette fonction. On dit qu'elle est locale. En dehors de la fonction, elle n'existe pas.
A l'inverse, une variable définie en dehors de toute fonction est globale : elle est accessible partout en lecture. Mais si tu veux la modifier dans une fonction, il faut utiliser le mot-clé global.
Par exemple :
compteur = 0
def incrementer(): global compteur compteur = compteur + 1
Sans le mot global, Python créerait une nouvelle variable locale compteur et la variable globale resterait inchangée.
Écris une fonction créer_compteur() qui renvoie un dictionnaire avec deux fonctions : 'incrementer' et 'valeur'. La fonction incrementer augmente le compteur de 1, et valeur renvoie la valeur actuelle. Utilise une liste d'un élément pour stocker le compteur (astuce pour contourner le scope sans global).
Exemple : c = créer_compteur() c['valeur']() renvoie 0 c['incrementer']() c['valeur']() renvoie 1
Tests (3/4)
Valeur initiale
c = créer_compteur()
assert c['valeur']() == 0
Apres increment
c = créer_compteur()
c['incrementer']()
assert c['valeur']() == 1
Plusieurs increments
c = créer_compteur()
c['incrementer']()
c['incrementer']()
c['incrementer']()
assert c['valeur']() == 3