2.2. Les variables

Il est nécessaire de pouvoir écrire et lire des valeurs dans la mémoire de l’ordinateur pour de nombreuses raisons. On mentionnera notamment les cas suivants :

  • Lorsque l’on doit utiliser une même valeur en différents endroits du programme.

  • Lorsque des valeurs sont amenées à évoluer dans le temps (par exemple pour compter des éléments).

  • Lorsque l’on doit mémoriser une valeur que l’on ne peut retrouver autrement afin de l’utiliser plus tard (par exemple le résultat d’un lancer de dé).

  • Lorsque le programme ne connaît pas à l’avance les valeurs qu’il devra traiter et les lit à l’exécution.

Dans les exemples du chapitre d’introduction, nous avons appris à mémoriser (ou stocker) des valeurs numériques et du texte afin de les réutiliser ensuite. Pour ce faire, nous avons utilisé la syntaxe suivante.

>>> a = 3
>>> animal = "mouton"
>>> print(animal)
mouton
>>> print(a ** 4)
81

Nous avons ici en réalité créé deux variables. Une variable est un espace de stockage dans la mémoire de l’ordinateur contenant une valeur et associé à un nom symbolique, comme un petit tiroir portant une étiquette et dans lequel on range une valeur.

2.2.1. Déclarations de variables

Pour créer une variable, on doit tout d’abord la déclarer en indiquant son nom à la gauche de l’opérateur d’affectation (=) et une valeur initiale à droite : variable_name = initial_value.

Note

Le nom de la variable doit impérativement se situer à gauche du signe d’affectation et sa valeur à droite. Ainsi, l’expression 3 = a est incorrecte et résultera en une erreur.

Les variables ont une durée de vie limitée. Elles n’existent que dans le contexte dans lequel elles ont été déclarées. Par exemple, une variable définie dans un programme n’est pas accessible par un autre programme. De même, une variable définie dans une session du REPL est effacée lorsque l’on en sort.

Il est possible de déclarer plusieurs variables sur la même ligne.

>>> a, b, c = 3, "Salut", 1.5
>>> b
'Salut'
>>> d = e = f = "Nous possédons la même valeur !"

Comme son nom l’indique, une variable peur prendre différentes valeurs au cours de sa vie.

>>> n = 42
>>> print(n)
42
>>> n = 13
>>> print(n)
13
>>> type(n)
<class 'int'>
>>> n = n / 2
>>> print(n)
6.5
>>> type(n)
<class 'float'>

Lorsque l’on déclare la variable n, on lui affecte la valeur entière 42. Le premier appel de la fonction print() affiche en effet 42. On modifie ensuite n en lui affectant la valeur 13. Le deuxième appel de print() affiche bien la nouvelle valeur. Finalement on modifie la valeur de n en le divisant par 2. Quand on appelle à nouveau print(), non seulement la valeur contenue dans n est 2 fois inférieure, mais la variable a aussi changé de type. Elle était de type entier à sa création et a automatiquement été convertie en nombre décimal suite à la division.

Il arrive que l’on déclare des variables dont la valeur est fixée une fois pour toutes et qui ne sont pas destinées à être modifiées par la suite, comme par exemple la vitesse maximale autorisée sur les autoroutes. Dans ce cas, on appelle ces variables des constantes et on les nomme en majuscules.

>>> MAX_SPEED = 120
>>> PI = 3.1415

Note

Contrairement à d’autres langages de programmation, il n’existe pas en Python de distinction fondamentale entre variables et constantes. En effet, le language ne permet pas de déclarer des constantes dont la modification est interdite par l’interprète. Le nommage des constantes en majuscules est une convention permettant de les distinguer et d’éviter que le programmeur ne les modifient par inadvertence.