2.1. Variables

2.1.1. Variable et affectation

Une variable est un objet qui associe un nom (identifiant) à un objet stocké en mémoire. Concrètement, une variable permet de conserver un objet en vue d’une utilisation ultérieure.

Pour stocker un objet dans une variable, on utilise l’opérateur d’affectation =.

In [1]: a = 2

In [2]: b = 3

In [3]: (a + b)**2
Out[3]: 25

Avertissement

Le symbole = n’a pas du tout le même sens qu’en mathématiques. En mathématiques, ce symbole désigne un état de fait et a une valeur logique (une égalité peut être vraie ou fausse) tandis qu’en Python, il accomplit une action (stocker une valeur dans une variable).

Bien entendu, on peut changer la valeur d’une variable (d’où le nom) et même le type de cette valeur.

In [4]: a = 42

In [5]: a
Out[5]: 42

In [6]: a = "toto"

In [7]: a
Out[7]: 'toto'

Echange de deux variables

On est souvent amené à échanger les valeurs de deux variables. La méthode naïve ne fonctionne pas.

In [8]: a = 1

In [9]: b = 2

In [10]: a = b # Les deux variables valent 2 !

In [11]: b = a

In [12]: a
Out[12]: 2

In [13]: b
Out[13]: 2

L’idée est alors d’employer une variable auxiliaire.

In [14]: a = 1

In [15]: b = 2

In [16]: aux = a

In [17]: a = b

In [18]: b = aux

In [19]: a
Out[19]: 2

In [20]: b
Out[20]: 1

On peut également utiliser des affectations multiples à l’aide de tuples ou de listes.

2.1.2. Identifiant d’une variable

Bien que cela n’ait rien d’obligatoire, il est judicieux que l’identifiant d’une variable donne une indication quant à l’utilisation de cette variable. Par exemple, une variable devant contenir la moyenne de plusieurs nombres sera plus judicieusement nommée moyenne ou même moy plutôt que x ou toto.

Note

On ne peut pas choisir n’importe quel identifiant pour une variable.

  • Certains mots du langage Python sont dits « réservés » et ne peuvent servir à désigner une variable (for, while, del, …).
  • Le nommage des identifiants doit obéir à certaines règles : le premier caractère ne peut être un chiffre, certains caractères comme # ou @ sont proscrits, …