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é.

Si vous voulez en savoir plus sur les espaces de noms, vous pouvez consulter le cours sur la mémoire et espace de noms

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

association nom variable

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

>>> 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

>>> 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

>>> 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

>>> 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

>>> i, j = 3, 12

Affectez en une ligne la valeur 3 aux variables x, y et z.

solution

>>> x = y = z = 3