Variables
Les variables permettent à l'interpréteur de se rappeler d'objets qu'il a crée lors d'exécutions précédentes. Sans elles, on ne pourrait exécuter que des lignes indépendantes les unes entre elles : bref, on ne pourrait rien faire d'intéressant.
Une variable est un nom auquel est associé un objet.
Pour associer un nom à un objet on utilise l’opérateur d’affectation =
tel que:
nom = objet
A gauche de l’opérateur =
se trouve un nom (en gros, quelque chose ne pouvant commencer par un nombre) et à droite un objet. Dans toute la suite du programme, dès que l'interpréteur python rencontrera le nom, il le remplacera par l'objet.
Un nom n'est PAS une chaîne de caractères. Une chaîne de caractère est un objet alors qu’un nom n’est qu’un alias vers un objet.
Il est important de comprendre que l’opérateur d’affectation =
n’est pas symétrique. À gauche, des noms et à droite, des objets.
Utilisez la console de https://console.basthon.fr/ pour exécuter les divers exemples et exercices
Espace de nom
Un espace de noms est un endroit où python stocke les noms. Une variable est un nom d'un espace de noms. Les espaces de noms sont hiérarchisées et tout en haut se trouve l'espace de nom global qui est créé lorsque l'interpréteur est lancé.
Affectation des objets à l'espace de noms
Attardons nous un moment sur ces notions car elles seront cruciales plus tard pour appréhender les possibilités offertes par les objets.
Considérons le programme suivant :
x = 1
y = 1
x = y
La figure montre le résultat après chaque instruction. On voit qu’un même objet peut parfaitement avoir plusieurs noms. Cependant, à un nom correspond un unique objet. Les objets qui n’ont plus de noms sont supprimés à intervalles réguliers (c’est ce qu’on appelle le garbage collector) puisque l’on ne peut plus y accéder.
Le mécanisme décrit précédemment (remplacement des noms par les objets référencés avant exécution
de l’instruction) montre que l’on peut affecter plusieurs noms en même temps, comme le montre l’exemple suivant qui échange les objets des noms i
et j
:
i = 2
j = 3
i, j = j, i
Enfin, il est possible d'affecter plusieurs noms à un même objet. Par exemple l'exemple suivant affecte le même entier 1 aux noms x
et y
:
x = y = 1
Supprimer un nom
On peut supprimer un nom en utilisant le mot clé del
.
Dans une console :
>>> x = 2
>>> print(x)
2
>>> del x
>>> print(x)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'x' is not defined
Exercices
Faites les différents exercice ci-après dans une console (certains exercices sont liés) :
Affectez la valeur 3 à la variable a
, puis affichez à l'écran la valeur associée à la variable a
.
solution
solution
>>> a=3
>>> print(a)
3
Affectez la nouvelle valeur 6 à la variable a
, puis affichez à l'écran la valeur associée à la variable a
.
solution
solution
>>> a=6
>>> print(a)
6
Affectez la valeur 2 à la variable A
, puis affichez à l'écran la valeur associée aux variables a
et A
.
solution
solution
>>> A = 2
>>> print(a)
6
>>> print(A)
2
Les variables sont sensibles à la casse : a est différent de A.
Affectez la valeur 4 à la variable b
, puis affectez le résultat de la somme des variables a
et b
à variable c
solution
solution
>>> b = 4
>>> c = (a+b)/2
>>> print(b)
4
>>> print(c)
5.0
c
est un réel.
Affectez en une ligne les valeurs 3 et 12 respectivement aux variables j
et k
solution
solution
>>> i, j = 3, 12
Affectez en une ligne la valeur 3 aux variables x
, y
et z
.
solution
solution
>>> x = y = z = 3