1. Variables¶
Objectifs de cette session :
distinguer le nom, la valeur et le type d’une variable,
déclarer une variable et lui affecter une valeur,
reconnaître les quatre types
int,float,stretbool,retrouver le sens d’un opérateur dans une expression,
respecter les règles et conventions de nommage.
1.1. Nom, valeur, type¶
Une variable est une valeur nommée et stockée en mémoire. Elle a trois caractéristiques :
son nom : l’étiquette qui l’identifie dans le programme,
sa valeur : l’information qu’elle contient,
son type : la nature de cette information.
Cette variable a pour nom age, pour valeur 17, et pour type int.
1.2. Affectation¶
Le symbole = est l’opérateur d’affectation : il stocke la valeur de droite dans la variable de gauche. La première affectation déclare la variable.
Avertissement
Le = ne se lit pas « égale » mais « reçoit la valeur ». Il ne faut pas le confondre avec ==, ni avec le = mathématique.
Un nom ne désigne qu’une seule variable : réaffecter écrase l’ancienne valeur, seule la dernière est conservée.
Une variable peut figurer des deux côtés du =. L’ordinateur calcule d’abord le côté droit, puis affecte le résultat au nom de gauche.
Exercice 1
Mettez la valeur 6 dans une variable a, affichez-la, divisez-la par trois, remettez le résultat dans a, puis affichez-la de nouveau.
Solution
Le second affichage donne 2.0 et non 2 : la division / produit toujours un float.
1.3. Les quatre types de base¶
Type |
Nature |
Exemples |
|---|---|---|
|
nombre entier |
|
|
nombre à virgule |
|
|
chaîne de caractères |
|
|
booléen |
|
Avertissement
La décimale s’écrit avec un point : 3.14. "42" entre guillemets est une chaîne, pas un nombre. True et False prennent une majuscule.
Exercice 2
Quel est le type de chacune de ces valeurs ? Remplacez les points par chaque valeur pour vérifier.
# a) "rewr" # b) 34 # c) 5.0 # d) 'julien34'
# e) "65.5" # f) True # g) "False" # h) rewr
Solution
a) str b) int c) float d) str
e) str — les guillemets en font une chaîne, malgré le point
f) bool g) str — une chaîne qui contient le mot False
h) erreur : sans guillemets, rewr est lu comme un nom de variable, qui n’existe pas.
1.4. Les opérateurs¶
Un opérateur est un symbole qui effectue une opération sur des valeurs.
Opérateurs arithmétiques¶
Opérateur |
Sens |
Exemple |
Résultat |
|---|---|---|---|
|
addition |
|
|
|
soustraction |
|
|
|
multiplication |
|
|
|
division |
|
|
|
division entière |
|
|
|
reste (modulo) |
|
|
|
puissance |
|
|
Toutes ces opérations donnent un entier si les deux opérandes sont entiers, sauf la division / qui donne toujours un float.
La priorité suit les règles mathématiques. Les parenthèses lèvent toute ambiguïté.
Opérateurs de comparaison¶
Ils comparent deux valeurs et donnent un bool : <, <=, >, >=, == (égal à), != (différent de). En mathématiques on écrit ≤, ≥ et ≠ ; en Python ces symboles s’écrivent avec deux caractères.
Concaténation¶
Sur les chaînes, + colle bout à bout et * répète.
Exercice 3
Qu’affichent ces programmes ? Notez vos réponses sur papier avant de vérifier.
# a) # b) # c)
x = 2 x = 2 x = 2
y = 3 y = 3 y = 3
x = y y = x x = x == y
print(x, y) print(x, y) print(x, y)
# d) # e) # f)
x = 2 x = 2 x = 2
y = 5 y = 3 y = 3
x = y // x y = x % y y = y - x
y = y * y x = x * 2 x = x * y
print(x, y) print(x, y) print(x, y)
Solution
a) 3 3 b) 2 2 c) False 3
d) 2 25 e) 4 2 f) 2 1
Exercice 4
Ce programme échange les valeurs de a et b. Suivez-le ligne par ligne et donnez les valeurs finales.
Solution
Ligne 3 : a = 13, b = 3. Ligne 4 : b = 13 - 3 = 10. Ligne 5 : a = 13 - 10 = 3.
Affichage : 3 10. Les deux valeurs ont été échangées sans variable supplémentaire.
1.5. Nommer une variable¶
Python n’accepte pas n’importe quel nom. Un nom ne peut pas commencer par un chiffre, ni contenir d’accent, d’espace, d’apostrophe ou de caractère spécial. Les majuscules comptent : age et Age désignent deux variables différentes. Enfin, les mots réservés du langage (def, for, in, return…) sont interdits.
Exercice 5
Exécutez ce programme, puis décommentez les lignes une à une. Quel message d’erreur obtenez-vous à chaque fois, et pourquoi ?
Solution
Les deux premières lignes fonctionnent : un nom peut commencer par _ et contenir des _.
38b commence par un chiffre, mon age contient une espace, prix-unitaire contient un tiret que Python lit comme une soustraction, def est un mot réservé. Ces quatre cas donnent une SyntaxError.
élève s’exécute sans erreur, car Python accepte l’Unicode, mais les accents sont à proscrire par convention.
Conventions¶
Le nom d’une variable doit toujours représenter au mieux son utilité. On écrit tout en minuscules, les mots séparés par des tirets bas, ce qu’on appelle le snake_case.
Ces conventions sont fixées par la communauté Python dans un document appelé PEP 8.
1.6. Erreurs fréquentes¶
Exercice 6
Exécutez ce programme. Lisez le message d’erreur, expliquez-le, puis corrigez.
Solution
NameError: name 'z' is not defined. La variable z n’a jamais été déclarée : aucune valeur ne lui a été affectée avant son utilisation. Il faut ajouter une ligne comme z = 2 avant la ligne 2.
Exercice 7
Même consigne.
Solution
Le booléen s’écrit True avec une majuscule. Écrit en minuscules, Python le prend pour un nom de variable inconnu et signale une NameError.
Exercice 8
Ce programme s’exécute sans erreur, mais le résultat n’est pas celui attendu. Expliquez pourquoi, puis corrigez pour obtenir 7.
Solution
Les guillemets font de "5" et "2" des chaînes de caractères. Sur des chaînes, + ne fait pas une addition mais une concaténation, d’où 52. En retirant les guillemets, on obtient deux int et l’addition donne 7.
1.7. Résumé¶
une variable a un nom, une valeur et un type,
=affecte une valeur ; la première affectation déclare la variable,les quatre types de base sont
int,float,stretbool,les opérateurs arithmétiques, de comparaison et la concaténation,
les règles de nommage et la convention snake_case.