Variables#
Définition#
Nous pouvons nous représenter une variable comme l'association d'une étiquette (nom de la variable) et d'une case pouvant contenir une donnée (emplacement dans la mémoire).
Une variable permet de stocker une valeur numérique, une chaîne de caractères, etc. qu'on réutilisera par la suite dans notre programme. Pour un programmeur, une variable est définie par un nom. Mais pour l'ordinateur, il s'agit d'une adresse (emplacement de la mémoire où est stockée cette donnée).
Attention
Règles à respecter pour le nom des variables:
Le nom d'une variable ne peut contenir que les caractères alphanumériques (A-z 0-9 et _)
Le nom d'une variable doit commencer par une lettre ou le caractère de soulignement.
Le nom d'une variable ne doit pas contenir d'espace.
Conseils:
Le nom de la variable doit faire du sens et correspondre à son contenu.
Exemples: age, hauteur, rayonLe caractère _ permet de séparer les mots dans un nom de variable.
Exemple: cote_carreLe nom d'une variable ne doit pas contenir de caractère accentué.
Faites attention aux minuscules et majuscules, car Python fait la distinction.
Exemple:mon_age,mon_Age,Mon_Ageetmon_AGEcorrespondent à quatre variables différentes.
Types de données#
En Python, il existe 4 types de données primitifs.
Type |
Nom |
Description |
Exemple |
|---|---|---|---|
int |
integer |
Nombres entiers |
4 |
float |
flottant |
Nombres à virgules |
4.125 |
str |
string |
Chaînes de caractères |
"Bonjour" |
bool |
booléen |
Résultat d'un test: Vrai (True) ou Faux (False ) |
2<1 renvoie False |
Exercice 1#
De quel type sont les valeurs suivantes?
60"Hello Bob"1.34True"45"-1.23"False"0.34-12False
Affectation d'une variable#
L'affectation d'une variable est l'opération qui consiste à donner une valeur à une variable.
L'affectation d'une variable se fait au moyen du nom de la variable, suivi du signe =
et de la valeur.
1age = 17 # La variable age est de type int
2prenom = "Bob" # La variable prenom est de type str
3moyenne = 5.2 # La variable moyenne est de type float
4promu = True # La variable promu est de type bool
Attention
Il ne faut pas confondre les opérateurs == et =:
==est une comparaison entre 2 valeurs. C'est en fait une question: est-ce que la valeur de l'expression qui se trouve à gauche de l'opérateur==est égale celle qui se trouve à droite? Le résultat sera doncTrueouFalse=est l'affectation d'une variable: la variable qui se trouve à gauche de l'opérateur=prendra la valeur de l'expression qui se trouve à droite.
Exercice 2#
Ce programme Python déclare 5 variables, mais contient une erreur par ligne. Trouvez et corrigez-les.
16 = age
2message = Je suis absent
3note = 4,5
4porte_ouverte = false
5nombre de voitures = 10
Solution
1age = 6
2message = "Je suis absent"
3note = 4.5
4porte_ouverte = False
5nombre_de_voitures = 10
À la création d'une variable, le nom doit toujours être à gauche du signe égal, et la valeur à droite.
Une valeur de type
strdoit être entourée de guillemets.Une valeur de type
floats'écrit non pas avec une virgule mais avec un point.Une valeur de type
boolprend une majuscule àTrueetFalse.Les noms de variables ne peuvent pas contenir d'espaces. Généralement, en Python, on les remplace alors par le caractère de soulignement.
Exécution d'un programme#
Lors de l'exécution d'un programme, Python va lire les instructions ligne par ligne et les effectuer. Afin de comprendre comment fonctionne un programme et évaluer le résultat, nous allons utiliser des tableaux d'états. Ceux-ci permettent de connaître à chaque ligne, la valeur des variables.
Exemple 1#
Programme
1a = 10
2b = 30
3c = a + b
4d = c * a
5a = 2 * a
6
7# Affiche les valeurs des variables
8print(a, b, c, d)
Tableau d'états
ligne |
a |
b |
c |
d |
|---|---|---|---|---|
1 |
10 |
? |
? |
? |
2 |
10 |
30 |
? |
? |
3 |
10 |
30 |
40 |
? |
4 |
10 |
30 |
40 |
400 |
5 |
20 |
30 |
40 |
400 |
Remarque#
Il est possible (et même fortement recommandé!) d'ajouter des commentaires dans un programme Python, afin de fournir des explications supplémentaires et de documenter le code.
Pour écrire un commentaire, il suffit d'écrir le symbole # et d'écrire ensuite le commentaire: tout ce qui suit le # jusqu'à la fin de la ligne est ignoré par l'interpréteur Python.
Les commentaires sont habituellement affichés avec une couleur particulière dans les éditeurs Python.
Exercice 3#
Déterminez la valeur de chacune des variables de ce programme en créant un tableau d'états.
1x = 10
2y = 2
3z = y * x
4y = z + x
5x = y - z / 2
6z = z * 2
7y = 5
8
9# Affiche les valeurs des variables
10print(x, y, z)
Solution
1x = 10
2y = 2
3z = y * x
4y = z + x
5x = y - z / 2
6z = z * 2
7y = 5
8
9# Affiche les valeurs des variables
10print(x, y, z)
ligne |
x |
y |
z |
|---|---|---|---|
1 |
10 |
? |
? |
2 |
10 |
2 |
? |
3 |
10 |
2 |
20 |
4 |
10 |
30 |
20 |
5 |
20 |
30 |
20 |
6 |
20 |
30 |
40 |
7 |
20 |
5 |
40 |
Exercice 4#
Déterminez la valeur de chacune des variables de ce programme en créant un tableau d'états.
1nombre_habitants = 150 + 25 * 2
2cout = 100
3prix = nombre_habitants * cout
4cout = cout / 2
5nombre_habitants = nombre_habitants - 100
6prix = prix + nombre_habitants * cout
7nombre_habitants = 400
8prix = prix + nombre_habitants * cout
9
10# Affiche les valeurs des variables
11print(nombre_habitants, cout, prix)
Solution
1nombre_habitants = 150 + 25 * 2
2cout = 100
3prix = nombre_habitants * cout
4cout = cout / 2
5nombre_habitants = nombre_habitants - 100
6prix = prix + nombre_habitants * cout
7nombre_habitants = 400
8prix = prix + nombre_habitants * cout
9
10# Affiche les valeurs des variables
11print(nombre_habitants, cout, prix)
ligne |
nombre_habitants |
cout |
prix |
|---|---|---|---|
1 |
200 |
? |
? |
2 |
200 |
100 |
? |
3 |
200 |
100 |
20000 |
4 |
200 |
50 |
20000 |
5 |
100 |
50 |
20000 |
6 |
100 |
50 |
25000 |
7 |
400 |
50 |
25000 |
8 |
400 |
50 |
45000 |
Exercice 5#
Complétez le programme ci-dessous de manière à ce qu'il calcule la moyenne des notes principales dans la variable du même nom. La note de math est de 4 et demi, la note de français de 6 et la note d'allemand de 5 et demi.
1# Complétez le programme
2math =
3francais =
4allemand =
5moyenne =
6
7# Affiche la valeur de la moyenne
8print(moyenne)
Solution
1math = 4.5
2francais = 6
3allemand = 5.5
4moyenne = (math + francais + allemand) / 3
5
6# Affiche la valeur de la moyenne
7print(moyenne)
Pour calculer la moyenne, on additionne toutes les notes avant de diviser le résultat par le nombre de notes, ici 3.
Comme la division a la priorité sur l'addition, il ne faut pas oublier de régler la priorité des opérations avec des parenthèses.
Exercice 6#
Écrivez un petit programme en Python permettant de calculer le volume d'un cylindre en fonction de son rayon et de sa hauteur. Le programme contiendra les lignes suivantes :
Créer une variable
picontenant la valeur3.14.Créer une variable
hauteurcontenant la valeur30Créer une variable
rayoncontenant la moitié de 11Créer une variable
aire_disquecontenant le résultat de \(\pi \cdot r^2\)Créer une variable
volumecontenant le résultat de l'aire du disque multiplié par la hauteur.
Au terme de l'exécution de ce programme, la variable volume devrait
contenir la valeur 2849.55
1# Écrivez le programme ici
2
3# Affiche le volume
4print(volume)
Solution
1pi = 3.14
2hauteur = 30
3rayon = 11 / 2 #ou rayon = 5.5
4aire_disque = pi * rayon ** 2
5volume = aire_disque * hauteur
6
7# Affiche le volume
8print(volume)
Exercice 7#
On définit deux variables : a=10 et b=3. Parmi les 4 programmes suivants, lesquels permettent
d’échanger le contenu des deux variables, de sorte qu’à la fin de l’exécution on obtienne a: 3 et b: 10 ?
1# Programme 1
2a = 10
3b = 3
4
5a = b
6b = a
7
8print("a: ", a)
9print("b: ", b)
1# Programme 2
2a = 10
3b = 3
4
5c = b
6a = b
7b = c
8
9print("a: ", a)
10print("b: ", b)
1# Programme 3
2a = 10
3b = 3
4
5c = a
6a = b
7b = c
8
9print("a: ", a)
10print("b: ", b)
1# Programme 4
2a = 10
3b = 3
4
5a = a+b
6b = a-b
7a = a-b
8
9print("a: ", a)
10print("b: ", b)
Vérifier vos réponse au moyen de la console ci-dessous:
1# Copiez le programme ici
Exercice 8#
Les 3 programmes suivants provoquent une erreur lors de l'exécution. Analysez ces programmes afin de retrouvez ces erreurs, puis corrigez-les (dans la mesure du possible).
1base = 5 2hauteur = 6 3Aire = base* hauteur 4print(aire)
1v = w+5 2w = 10 3print(v,w)
1a = 10 2b = 0 3a = a**2 4b = a/b 5print(b)
Opérateurs d'affectation#
Les opérateurs d'affectation combinée permettent de modifier la valeur des variables avec une notation simplifiée. Il en existe pour tous les opérateurs mathématiques, voici les principaux.
Opérateur |
Exemple |
Équivalent à |
|---|---|---|
= |
x = 6 |
x = 6 |
+= |
x += 6 |
x = x + 6 |
-= |
x -= 6 |
x = x - 6 |
*= |
x *= 6 |
x = x * 6 |
/= |
x /= 6 |
x = x / 6 |
Exercice 9#
Écrivez un programme Python contenant une variable x initialisée à 10.
Puis, complétez ce programme pour que celui-ci effectue les opérations
suivantes en utilisant les opérateurs d'affectation combinée:
Ajoute 3 à
xSoustrais 8 à
xMultiplie
xpar 10Divise
xpar 5Élève
xà la puissance 3
À la fin de l'exécution de ce programme, la variable x devrait contenir la
valeur 1000
1# Écrivez le programme ici
Solution
1x = 10
2x += 3
3x -= 8
4x *= 10
5x /= 5
6x **= 3
7
8print(x)
Exercice 10#
Lisez attentivement le programme ci-dessous et expliquez, en français, ce qu'il
fait. À quoi correspondent les variables total1, total2, et total3? que contiennent-elles? comment pourrait-on les renommer afin de faciliter la lecture et la compréhension du programme?
1prix_cahier = 4.50
2nombre_cahiers = 6
3prix_stylo = 2.20
4nombre_stylos = 4
5rabais = 0.05 # correspond à 5%
6
7total_cahiers = prix_cahier * nombre_cahiers
8total_stylos = prix_stylo * nombre_stylos
9total1 = nombre_cahiers + nombre_stylos
10total2 = total_cahiers + total_stylos
11total3 = total2 - rabais * total2
12print(total3)
Solution
total1 : nombre d'articles vendus. On pourrait renommer cette variable nombre_d_articles
total2 : prix total pour tous les articles vendus, sans prendre en compte le rabais. On pourrait renommer cette variable prix_avant_rabais
total3 : prix total auquel on a appliqué le rabais. On pourrait renommer cette variable prix_final