Une variable est une simple étiquette (un nom) sur un objet Python.
On parle classiquement de l'affectation d'une valeur à une variable. Pour mieux saisir le fonctionnement, il est également pratique de parler plutôt de l'affectation d'un nom à une case mémoire.
On rappelle que cette affectation se fait en Python
par le symbole « =
».
Exemple
Affectation de l'étiquette a
à une boîte contenant l'objet
Python (de type int
)
2
:
a = 2
Voici une lecture classique de ce code a = 2
:
- on place la valeur
2
dans une boîte (adresse mémoire), - on donne le nom
a
à cette boîte.
Après un code tel que a = 2
, on peut parfois prendre des raccourcis et
dire que la variable a
est de type int
. C'est en fait le
contenu de la boîte nommée a
qui est de type int
.
La distinction est importante, puisqu'en Python, on peut a
priori trouver des codes tels que le suivant :
a = 9
print(type(a)) # affiche <class 'int'>
a = a/2
print(type(a)) # affiche <class 'float'>
Une simple opération change le type de la valeur désignée par le nom a
(ceci serait impossible dans certains autres langages de programmation comme java ou
C par exemple).
- Complément : id
- Complément : les noms de variables
On peut utiliser
id()
qui retourne un entier,
représentant l’identifiant interne de n’importe quel objet, quel que soit son type.
On peut considérer qu'il s’agit de l’adresse mémoire dans laquelle il est stocké.
a = 9
b = 9
print(id(a))
print(id(b))
a = a/2
print("Après l'affectation a = a/2 : ")
print(id(a))
print(id(b))
Sur ma machine, j'obtiens :
10911424 10911424 Après l'affectation a = a/2 : 139682486026792 10911424
On voit en exécutant ce code que a et b sont a priori des étiquettes de la même boîte (variables
désignant le même objet python). Mais après
l'affectation a = a/2
, a ne désigne plus la même boîte.
Deux contraintes à respecter pour les noms de variable :
- Une contrainte pour le programmeur : on choisit un nom de variable de façon à ce que le rôle de la variable dans le programme soit explicitée. On facilite ainsi la compréhension du code, sa relecture, son débogage.
- Une contrainte syntaxique :
- Une variable est une séquence de lettres et de chiffres, le symbole
_
(underscore) peut également être utilisé. - En Python 3, les accents peuvent être utilisés pour les noms de variables mais il est préférable de les éviter.
- Un nom de variable ne peut commencer par un chiffre.
- Un certain nombre de mots ne peuvent être utilisés comme nom de variable, ils sont réservés par le langage (notamment
and
,if
,def
,for
,from
,or
,while
,in
,is
,return
,True
,False
,None
...)
- Une variable est une séquence de lettres et de chiffres, le symbole