Variables
Remarque. Le langage Python est sensible à la casse : ma_variable
, maVariable
et mavariable
sont donc trois identificateurs différents (préférer la première écriture).
Conventions.
-
Le premier caractère de l’identificateur doit être une lettre ou un blanc souligné (
_
). -
Les caractères suivant peuvent être alphanumériques ou des blanc soulignés (
_
). -
Les majuscules et les minuscules ne sont pas confondues.
-
Le tableau ci-après, contient les mots-clés du langage Python. Il est impossible de choisir un identificateur correspondant à l’un de ces mots-clés.
and as assert break class del elif continue def else except exec finally for from global if import in is lambda nonlocal not or pass print raise return try while with yield None True False
Déclaration et affectation des variables
Vocabulaire
Note. La déclaration d’une variable doit donc précéder son utilisation.
Affectation d’une valeur à une variable
Affectation simple
=
.
Python est un langage à typage dynamique : il n’est pas nécessaire de déclarer le type de la valeur référencée par la variable.
a
:
|
|
a
puis affectation du littéral 3 à cette variable.
|
|
Remarque. On peut noter dès à présent qu’une affectation en Python ne consiste pas au stockage d’une valeur dans une variable, contrairement à ce qui se passe dans d’autres langages de programmation (pour les types primitifs). En Python, les objets (entiers, flottants, chaînes de caractères, …) sont référencés : lors d’une affectation, c’est une référence à un objet (et non une valeur) qui est définie, que l’objet vienne d’être créé ou qu’il s’agisse d’un objet préexistant.
Exemples.
|
|
Affectations multiples
|
|
Remarque. Pour bien comprendre comment fonctionne l’affectation multiple, ci-dessus, lire l’instruction de la droite vers la gauche. Ainsi, on affecte à la variable z
l’entier 1, à la variable y
la valeur référencée par la variable z
, à la variable x
la valeur référencée par la variable y
. L’instruction précédente est donc équivalente à l’enchaînement :
|
|
Affectation de « tuples »
|
|
Remarque. Le fonctionnement de cette affectation sera détaillé dans un prochain chapitre.
Opérateurs d’affectation
Le langage Python possède un certain nombre de raccourcis permettant de très rapidement écrire la mise à jour de la valeur d’une variable à partir d’une expression faisant elle même référence au contenu de la variable. Ici aussi, il est nécessaire de lire l’instruction de la droite vers la gauche.
Opérateur | Expression | Description |
---|---|---|
= |
variable = expression |
|
+= |
variable += expression |
variable = variable + expression |
-= |
variable -= expression |
variable = variable - expression |
*= |
variable *= expression |
variable = variable * expression |
/= |
variable /= expression |
variable = variable / expression |
//= |
variable //= expression |
variable = variable // expression |
%= |
variable %= expression |
variable = variable % expression |
Formatage des chaînes de caractères
Comme nous l’avons vu dans le précédent chapitre, une chaîne de caractère est un type pré-défini incontournable du langage Python.
|
|
Il faut donc être capable de manipuler ces chaînes de caractères, et en particulier d’y incorporer le résultat de l’évalution d’expressions.
chaine.format()
permet d’insérer un littéral ou le résultat de l’évaluation d’une expression dans une chaîne de caractères.Le type du littéral ou du résultat de l’évaluation est déterminé automatiquement ; la conversion vers le type
str
est alors effectuée.
|
|
Certaines mises en forme nécessitent de préciser le type de la donnée et la façon de l’afficher. Le marqueur de formatage :
permet d’introduire des drapeaux :
-
Le drapeau
s
indique que la donnée à insérer est une chaîne de caractères.
C’est le drapeau implicite et il est inutile de le préciser ; -
Le drapeau
d
indique que la donnée à insérer est un nombre qu’il faut convertir en nombre entier si nécessaire ; -
Les drapeaux
f
,g
ete
indiquent que les données à insérer sont des nombres flottants.
Le drapeaug
est le plus général, il correspond au drapeauf
si le nombre n’est pas trop grand, à la notation avec puissances de 10e
, si l’écriture du nombre prend beaucoup de place ; -
…
Pour finir, il est possible d’indiquer le nombre minimal de chiffres à utiliser (ils n’ont pas besoin d’être visibles, seule la place nécessaire pour l’affichage compte) et le nombre de chiffres après la virgule à afficher.
|
|
Exercices du chapitre
Variables
Quelles sont les valeurs des nombres contenus dans les variables prix
, tva
et total
après exécution de chacune des instructions suivantes ?
|
|
Solution
|
|
Variables
Quelles sont les valeurs des nombres contenus dans les variables prix
, tva
après exécution de chacune des instructions suivantes ?
|
|
Solution
|
|
Affectations
Dans chacun des cas, quelles sont les valeurs des variables a
et b
après l’exécution de chacune des instructions suivantes ?
|
|
|
|
Solution
|
|
|
|
Échange de valeurs
Laquelle des instructions suivantes permet d’échanger les valeurs des deux variables a
et b
?
- A :
1 2
>>> a = b >>> b = a
- B :
1 2 3
>>> t = a >>> a = b >>> b = t
- C :
1 2 3
>>> t = a >>> b = a >>> t = b
Solution
- A :
a
etb
référencent la valeur deb
. Pas la bonne méthode. - B :
t
référence la valeur initiale dea
,a
référence la valeur deb
etb
référence la valeur dea
. C’est donc la bonne méthode. - C :
a
,b
ett
référencent la valeur initiale dea
. Pas la bonne méthode.
Échange de valeurs
Soit trois variables a
, b
et c
. Écrire les instructions permutant les valeurs, de sorte que la valeur de a
passe dans b
, celle de b
dans c
et celle de c
dans a
. N’utiliser qu’une (et une seule) variable entière supplémentaire, nommée tmp
.
Solution
|
|
Conversion francs euros
Écrire une fonction qui convertit des francs en euros (1 euro correspond à 6,55957 francs).
La spécification de la fonction est :
|
|
Solution
|
|
Message d’accueil
Écrire une fonction qui, à partir d’un nom, d’un prénom et d’une date de naissance retourne un message d’accueil incluant l’age de la personne.
La spécification de la fonction est :
|
|
Solution
|
|
Nombre aléatoire
Écrire une fonction qui, à partir de deux ages limites, retourne une chaîne de caractères indiquant l’age de la personne qui appelle cette fonction, choisi aléatoirement.
La spécification de la fonction est :
|
|
Solution
|
|