Le casier du vestiaire
Dans le vestiaire, ton sac est dans ton casier. Seul toi peux l’ouvrir. Le panneau des horaires, lui, est sur le mur : tout le monde le voit.
En Python, c’est pareil. Certaines variables sont privées, d’autres sont visibles partout.
Cette leçon t’explique qui voit quoi, et pourquoi un compteur peut planter.
Mots-clés
| Mot | Ce que ça veut dire | Exemple |
|---|---|---|
| Variable locale | Une variable créée dans une fonction. Elle n’existe que là. | affaire dans preparer_sac |
| Variable globale | Une variable créée hors de toute fonction. Tout le programme la voit. | taux_tva |
| Portée | L’endroit du programme où une variable existe. | Dans la fonction seulement |
| global | Mot de Python qui dit : dans cette fonction, je parle de la variable globale. | global points |
| Compteur | Une variable à laquelle on ajoute 1 de temps en temps. | points = points + 1 |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
La variable locale
Une variable créée dans une fonction est locale. Elle naît quand la fonction démarre.
Elle disparaît quand la fonction se termine. Le reste du programme ne la voit pas.
On appelle portée l’endroit où une variable existe.
À toi : un sac dans un casier
def preparer_sac():
affaire = "gourde"
print("Dans la fonction, j'ai :", affaire)
preparer_sac()
# La variable affaire n'existe que dans la fonction.
# Enlève le # devant la ligne suivante pour voir l'erreur.
# print(affaire)
La variable globale
Une variable créée hors de toute fonction est globale. Tout le programme peut la lire, fonctions comprises.
C’est pratique pour une valeur qui sert partout, comme le taux de taxe.
À toi : un taux pour tout le programme
taux_tva = 20 # une variable globale : elle est écrite hors des fonctions
def prix_ttc(prix_ht):
# La fonction peut lire taux_tva, même si elle n'est pas dans ses paramètres.
return prix_ht + prix_ht * taux_tva / 100
print(prix_ttc(50))
taux_tva = 5.5
print(prix_ttc(50))
# Le taux a changé hors de la fonction. Le prix aussi.
Exemple travaillé : qui voit quoi
| Variable | Créée où ? | Vue dans la fonction ? | Vue dehors ? |
|---|---|---|---|
| affaire | Dans preparer_sac | Oui | Non |
| taux_tva | Hors des fonctions | Oui, en lecture | Oui |
| prix_ht | Paramètre de prix_ttc | Oui | Non |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Contrôle rapide
À toi de jouer
Contrôle rapide
3 questionsTes réponses sont corrigées ici et ne sont pas conservées. Un compte garde tes résultats.
Modifier une variable globale
Lire une globale est facile. La changer demande un mot de plus.
Quand une fonction écrit points = points + 1, Python croit que points est une nouvelle variable locale. Il la cherche, ne la trouve pas, et plante avec une UnboundLocalError.
Le mot global règle le problème : il dit à Python de prendre la variable du dehors.