Python en mathématiques - Niveau 1

Affectation d'une variable

En Python, l'affectation des variables s'effectue à l'aide du symbole « = ».

Tableau de correspondance pour l'affectation
Algorithme Python Scratch

			x ← 2
						

			x = 2
						
affecter avec scratch

Variable

Une variable est une simple étiquette (un nom) sur un objet Python.

On parle classiquement de l'affectation d'une valeur à une variable. Pour mieux saisir le fonctionnement, il est également pratique de parler plutôt de l'affectation d'un nom à une case mémoire.

Exemple

Affectation de l'étiquette a à une boîte contenant l'objet Python 2 (de type int) :


a = 2

Voici une lecture classique de ce code « a = 2 » :

  1. on place la valeur 2 dans une boîte (adresse mémoire),
  2. on donne le nom a à cette boîte.

Dans la console Python, il suffit d'écrire le nom d'une variable puis d'appuyer sur la touche [Entrée] pour connaître le contenu de cette variable :

>>> a = 2

>>> a
2

>>> b
Traceback (most recent call last):
    File "", line 1, in 
NameError: name 'b' is not defined

Typage dynamique

Après un code tel que a = 2, on peut parfois prendre des raccourcis et dire que la variable a est de type int. C'est en fait le contenu de la boîte désignée par a qui est de type int. La distinction est importante, puisqu'en Python, on peut a priori trouver des codes tels que le suivant :

>>> a = 9

>>> a
9

>>> type(a)
<class 'int'>

>>> a = a/2

>>>type(a)
<class 'float'>
	

Une simple opération change le type de la valeur désignée par le nom a (ceci serait impossible dans certains autres langages de programmation comme Java ou C par exemple).

  • Complément : idPlus tard !

On peut utiliser la fonction id() qui renvoie un entier, représentant l’identifiant interne de n’importe quel objet, quel que soit son type. On peut considérer qu'il s’agit de l’adresse mémoire dans laquelle il est stocké.

Voici un exemple d'utilisation de id() sur ma machine :

>>> a = 9

>>> b = 9

>>> id(a)
497895184

>>> id(b)
497895184

>>> a = a/2

>>> id(a)
35541056

>>> id(b)
497895184
	

En exécutant ce code, on voit que a et b sont a priori des étiquettes de la même boîte (variables désignant le même objet Python). Mais après l'affectation a = a/2, le nom a ne désigne plus la même boîte.

Les noms de variables

Deux contraintes à respecter pour les noms de variable :

Une contrainte pour le programmeur

On choisit un nom de variable de façon à ce que le rôle de la variable dans le programme soit explicité. On facilite ainsi la compréhension du code, sa relecture, son débogage.
Ainsi, si une variable sert à stocker l'abscisse du point A, il vaut mieux nommer cette variable « x_A » plutôt que « x » !

Une contrainte syntaxique

Une variable est une séquence de lettres et de chiffres qui respecte les conventions suivantes :

  • Un nom de variable ne peut commencer par un chiffre.
  • Le symbole _ (underscore) peut également être utilisé.
  • En Python 3, les accents peuvent être utilisés pour les noms de variables (on préférera généralement les éviter).
  • Un certain nombre de mots ne peuvent être utilisés comme nom de variable, ils sont réservés par le langage (notamment and, if, def, for, from, or, while, in, is, return, True, False, None ...)

Affectations « simultanées » Plus tard !

En langage Python, on peut affecter plusieurs variables avec un seul symbole « = » comme ci-dessous :

>>> a, b, c = 2, 3, 4

>>> a
2

>>> b
3

>>> c
4		
	

Un nouveau type d'objet Python se cache en fait derrière cela : le type tuple qui peut être considéré comme un n-uplet.

L'instruction :


a, b, c = 2, 3, 4
	

peut être interprété comme l'affectation :


(a, b, c) = (2, 3, 4)
	

La proximité de cette syntaxe avec la notation mathématique rend ceci parfaitement lisible.

Nous verrons plus tard que cette même « astuce » permet qu'une fonction donne l'impression de renvoyer facilement plusieurs valeurs.