Section 4.3
Variables
Dans cette section, nous allons nous intéresser aux variables. Les variables sont un moyen de stocker des données dans la mémoire de travail d'un programme. Chaque variable a un nom et permet de stocker une valeur ; valeur qui peut être modifiée au fil de l'exécution du programme. Nous allons voir comment assigner une valeur à une variable et comment utiliser cette variable dans des calculs.
Avant de plonger des explications plus techniques, considérons ensemble un exemple de programme qui utilise une variable :
Le programme ci-dessus contient deux lignes de code.
La première ligne assigne la valeur 23
à la variable x
.
La deuxième ligne utilise la variable x
dans un calcul.
Ce calcul a pour effet de bord d'afficher la valeur de la variable x
, ici 23
, à l'écran.
! Remarque
À noter que le symbole =
n'est pas à confondre avec l'opérateur ==
.
Comme nous l'avons vu dans la section précédente,
l'opérateur ==
est utilisé pour calculer si deux valeurs sont égales.
L'unique symbole =
est utilisé pour assigner une valeur à une variable,
comme nous allons le voir dans la suite de cette section.
Assignation
Pour assigner une valeur à une variable, on utilise le symbole =
.
Par exemple, pour assigner la valeur 45
à la variable n
, on écrit:
Lorsqu'on exécute ce programme, rien ne s'affiche à l'écran.
En effet, la ligne x = 45
a pour seul effet de bord
de mémoriser la valeur 45
sous le nom x
.
Ici, aucune opération n'a pour effet de bord d'afficher
quoi que ce soit à l'écran.
! Remarque
La durée de vie d'une variable est limitée à la durée de vie du programme. Une fois l'exécution du programme terminée, toutes les variables sont effacées de la mémoire de travail. Pour se souvenir d'une valeur entre deux exécutions d'un programme, il faudra utiliser d'autre mécanismes, comme par exemple stocker des valeurs dans un fichier ou dans une base de données. Ces sujets seront abordés ultérieurement.
En Python, la partie de droite d'une assignation (ce qui vient après le =
)
peut être n'importe quel calcul, comme par exemple:
Dans ce cas, le calcul n'est fait qu'une seule fois, au moment de l'assignation.
À noter que nous ne sommes pas limités à stocker uniquement des nombres dans une variable. Nous pouvons stocker n'importe quel type de données, comme par exemple des chaînes de caractères:
De plus, nous ne sommes pas limités à une unique variable :
! Remarque
Généralement, on essaiera de donner des noms de variables qui ont du sens
en rapport avec la valeur qu'elles stockent.
Par exemple, on préférera utiliser age
plutôt que x
pour stocker l'âge d'une personne, ou nom
plutôt que y
pour stocker le nom d'une personne.
Pour des variables qui représentes des choses moins concrètes,
on pourra toutefois utiliser des noms plus courts,
comme n
ou x
.
En Python, les noms de variables sont sensibles à la casse.
Cela signifie que age
, Age
et AGE
sont trois variables différentes.
Pour former un nom de variable valide en Python, nous pouvons utiliser toutes les lettres de l'alphabet,
les chiffres et le symbole _
.
Le nom d'une variable ne peut pas commencer par un chiffre.
De plus, on préférera écrire les noms de variables en minuscules et sans accents.
Comme on ne peut pas utiliser d'espaces, on utilisera le symbole _
pour séparer les mots
composant le nom d'une variable s'ils sont plusieurs.
Par exemple, on pourra utiliser le nom nom_de_famille
pour stocker un nom de famille,
mais pas nom de famille
.
! Remarque
En Python, l'assignation d'une valeur à une variable ne peut pas apparaître au sein d'un calcul plus complexe. L'assignation doit toujours être faite sur une ligne à part et constitue ce qu'on appelle une instruction.
Utilisation
Pour utiliser une variable dans un calcul, on écrit simplement son nom.
Par exemple, pour calculer le double de la valeur stockée dans la variable n
,
on écrit simplement 2 * n
, comme dans l'exemple suivant :
Lorsqu'on fait usage d'une variable qui n'a pas encore été assignée, Python nous renvoie une erreur.
Une fois assignée, une variable peut être utilisée dans n'importe quel calcul et n'importe combien de fois.
Notez qu'utiliser une variable dans un calcul n'a pas pour effet de changer sa valeur. Peut importe l'opération effectuée sur une variable, tant que la variable n'est pas réassignée, sa valeur ne change pas.
Comme nous l'avons mentionné précédemment,
le calcul qui se trouve à droite du symbole =
est effectué une seule fois,
au moment de l'assignation.
Lorsqu'on utilise une variable, on ne fait que réutiliser la valeur qui a été calculée
lors de l'assignation. On ne recalcule pas la valeur.
Par exemple, dans le code suivant, bien que la variable n
soit utilisée
dans deux calculs différents, le calcul qui se trouve à droite du symbole =
n'est effectué qu'une seule fois :
Pour vérifier ce phénomène, on peut utiliser une fonction avec effet de bord,
comme input
:
Comme il y a un unique affichage de la chaîne de caractères "Bonjour, votre nom: "
,
on peut conclure que le calcul qui se trouve à droite du symbole =
n'est effectué qu'une seule fois, et ce bien que la variable nom
soit utilisée à plusieurs reprises dans la suite du programme.
Réassignation
Une variable peut être réassignée à tout moment dans le programme
en utilisant à nouveau le symbole =
.
Par exemple :
Lorsqu'on réassigne une variable, la valeur précédente est perdue. En effet, Python ne conserve pas en mémoire toutes les valeurs qui ont été assignées à une variable, mais seulement la dernière valeur assignée.
Notez que lors du calcul de la valeur à assigner à une variable,
on peut utiliser la valeur de la variable elle-même.
Par exemple, pour doubler la valeur d'une variable n
,
on peut écrire n = n * 2
, comme dans le programme suivant :
! Remarque
Les réassignations où une simple opération est appliquée sur une variable sont très courantes en Python,
c'est pourquoi Python propose une syntaxe plus concise pour ce type de réassignation.
À la place d'écrire n = n * 2
, on peut écrire n *= 2
.
Cela fonctionne aussi pour de nombreux autres opérateurs comme +
, -
etc.
Incrémentation
Une opération de réassignation très courante est l'incrémentation.
Incrémenter une variable consiste à lui ajouter une valeur donnée, appelée incrément.
Très souvent, l'incrément est égal à 1
.
Pour incrémenter une variable n
de 1
, on peut écrire n = n + 1
,
ou encore, plus simplement, n += 1
.
Échange de variables
Grâce à la réassignation, il est possible d'échanger les valeurs de deux variables. Cependant, si l'on essaie de le faire sans trop réfléchir, on peut se retrouver avec une solution incorrecte. Essayez le code suivant et essayez de comprendre la sortie :
À la ligne 4, on assigne une nouvelle valeur à la variable a
.
La nouvelle valeur est la valeur de la variable b
, qui est 2
.
Après cette ligne, la variable a
contient donc la valeur 2
.
À la ligne 5, on assigne une nouvelle valeur à b
.
La nouvelle valeur est la valeur de la variable a
.
Or, la variable a
contient maintenant la valeur 2
,
et non plus la valeur 1
.
Après cette ligne, la variable b
contient donc la valeur 2
.
C'est pourquoi la sortie du programme est 2 2
,
car les deux variables contiennent la même valeur.
Les variables a
et b
n'ont pas échangé leurs valeurs.
Une solution correcte pour échanger les valeurs de deux variables consiste à utiliser une troisième variable, qu'on appelle une variable temporaire. Voyez le code suivant :
! Remarque
La solution idiomatique en Python consiste à utiliser une assignation multiple. C'est-à-dire à assigner plusieurs variables en même temps, comme dans l'exemple suivant :
Dans ce genre d'assignation multiple, on sépare les variables par des virgules, et on sépare les valeurs à leur assigner par des virgules également. Lors d'une assignation multiple, toutes les valeurs de droite sont calculées (de gauche à droite) avant que les assignations ne soient effectuées. L'assignation multiple permet donc de facilement échanger les valeurs de plusieurs variables sans avoir à utiliser de variables temporaires.
Constantes
Certaines variables sont utilisées pour stocker des valeurs qui ne changent jamais.
Ces variables sont appelées des constantes.
Elles sont généralement écrites en lettres majuscules, comme PI
ou HEURES_PAR_JOUR
,
afin de les distinguer des variables qui peuvent changer de valeur.
✎ Auto-évaluation
En Python, on utilise pour assigner une valeur à une variable.
✎ Auto-évaluation
La valeur d'une variable est calculée .
✎ Auto-évaluation
À la fin de l'exécution d'un programme, les variables sont .
✎ Auto-évaluation
En Python, pour incrémenter une variable n
de 1
,
on peut écrire .
Dans cette section, nous avons vu le concept de variable en Python. Nous avons vu comment assigner une valeur à une variable et comment utiliser des variables dans des calculs. Nous avons aussi vu comment réassigner une valeur à une variable. Les variables vont jouer un rôle très important dans les prochaines sections, lorsque nous les combinerons avec différentes structures de contrôle.