En Python, l'affectation des variables s'effectue
à l'aide du symbole « =
».
Algorithme | Python | Scratch |
---|---|---|
|
|
![]() |
Affectation d'une variable
En Python, l'affectation des variables s'effectue
à l'aide du symbole « =
».
Algorithme | Python | Scratch |
---|---|---|
|
|
![]() |
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.
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
» :
2
dans une boîte (adresse mémoire),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
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).
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.
Deux contraintes à respecter pour les noms de variable :
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 variable est une séquence de lettres et de chiffres qui respecte les conventions suivantes :
_
(underscore) peut également
être utilisé.and
, if
, def
, for
, from
, or
, while
,
in
, is
, return
, True
, False
, None
...)
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.