I. Les variables¶
Cours¶
A. Les variables et les types¶
Les données manipulées par les algorithmes sont stockées dans des variables.
Définition
Une variable correspond à une zone de mémoire, qui stocke des données. Elle est désignée par un nom et contient une valeur.

Exemple
Pour stocker le nombre de pommes que l'on a pour faire la tarte, on peut utiliser une variable dont le nom est pommes
. Avant de commencer la recette, elle contient la valeur 4
.
Définitions
- Le nom est composé en Python de caractères alphanumériques : les lettres minuscules, majuscules et les chiffres, et de tirets du bas :
_
('underscore"). Il ne peut pas commencer par un chiffre. - La valeur peut être de différents types, correspondant à un stockage différent dans la mémoire de l'ordinateur. Compléter le tableau suivant avec avec les types de base :
Type | En Python (en anglais) | Exemples |
---|---|---|
entier | int ("integer") |
1, 36, -27 |
flottants | ||
chaînes de caractères | ||
booléens |
Solution
Type | En Python (en anglais) | Exemples |
---|---|---|
entier | int ("integer") |
1 , 36 , -27 |
flottants | float ("floating point number") |
1.0 , -3.14 , 10e15 |
chaînes de caractères | str ("string") |
'abc' , "bonjour" , '12345' |
booléens | bool ("boolean") |
True ou False |
Exemple
Notre variable pommes
contenant la valeur 4
est donc de type entier. Si on écrit 4.0
, elle est de type flottant, et si on écrit "4"
, elle est de type chaînes de caractères.
B. L'affectation et les opérateurs¶
Définition
Affecter une valeur à une variable consiste à stocker une valeur (qui a un type) dans l'espace de mémoire de la variable. On utilise l'opérateur =
en Python, et la syntaxe nom_de_la_variable = valeur
.
Cette valeur peut être changée dans la suite du programme. Une variable, par définition, n'est pas fixe !
Exemple :
Lire le programme et représenter schématiquement ce qu'il s'est passé.
Code
pommes = 4
# puis on découpe une pomme pour faire la tarte
pommes = 3
Schema

Définition
On peut effectuer toute sorte d'opérations sur ces variables, avec différents opérateurs. Compléter le tableau suivant :
Symbole | Opération | Types |
---|---|---|
+ |
addition | |
- |
||
* |
||
** |
||
/ |
||
// |
||
% |
Solution
Symbole | Opération | Types |
---|---|---|
+ |
addition | int+float->float , int(float)+str->ERREUR |
- |
soustraction | int-float->float , int(float)-str->ERREUR |
* |
multiplication | int*float->float , int(float)*str->ERREUR |
** |
puissance | sur int ou float |
/ |
division | sur int ou float |
// |
quotient de la division euclidienne | sur int ou float |
% |
reste de la division euclidienne (modulo) | sur int ou float |
Les opérateurs permettent de modifier les valeurs des variables au fur et à mesure d'un programme.
Exemple
Code
1 pommes = 4
2 pommes = pommes - 1
3 pommes = pommes*3
Que contient la variable pomme après exécution de ces deux instructions ?
Elle contient la valeur 9.
On peut représenter l'évolution des valeurs stockées dans les variables d'un programme avec une table de trace.
Compléter celle correspondant à ce programme :
Ligne | pommes |
---|---|
1 | |
2 | |
3 |
Solution
Ligne | pommes |
---|---|
1 | 4 |
2 | 3 |
3 | 9 |
TD : Variables et affectation¶
Exercice 1 : Noms de variables¶
Le tableau suivant contient des noms de variables. Indiquer, pour chacune d'elle, si elle est valide ou non, et si ce n'est pas le cas indiquer pourquoi.
Nom | Valide ou non-valide | Justification |
---|---|---|
age |
||
user_age |
||
123abc |
||
_name |
||
first name |
||
favoriteColor |
||
last-name |
||
total$ |
||
3dogs |
||
car_model |
Exercice 2 : Types¶
Pour chacune des valeurs proposées, indiquer le type de base utilisé et son nom en Python.
42 |
3.14 |
"Hello, world!" |
True |
-7 |
"123" |
0.5 |
False |
"True" |
|
---|---|---|---|---|---|---|---|---|---|
Type | |||||||||
Nom en Python |
Exercice 3 : Opérations sur les nombres¶
Quelle est la valeur et le type du résultat de chaque expression (vérifier sur ordinateur en cas de doute) ?
1 - 6 |
10.1 + 0.9 |
68 / 2.0 |
5 * 4 |
5 ** 4 |
7 % 10 |
10 ** 2 |
13 // 3 |
13 % 3 |
|
---|---|---|---|---|---|---|---|---|---|
Valeur | |||||||||
Type |
Exercice 4 : Amis sur un réseau social¶
Un utilisateur d'un réseau social voit son nombre d'amis, initialement de 200
, augmenter de 8% par an.
-
Combien a-t-il d'amis au total au bout d'un an ?
-
On stocke le nombre d'amis dans une variable
nb_amis
. Compléter le code pour avoir successivement le nombre d'amis de cet utilisateur dans 1, 2 et 3 ans.Code
nb_amis = 200
Exercice 5 : Valeurs d'une variable¶
A faire sur feuille.
-
Que vaut
x
après exécution de ce programme ? ...............Code
x = 1 x = 5 x = x + 2
- Que vaut
x
après exécution de ce programme ? ...............Que vauty
? ...............
Code
x = 1 y = 5 y = x + 2
- Que vaut
Exercice 6 : Manipulation de variables¶
A faire sur feuille.
On donne le code suivant :
Code
1 a = 9
2 b = 24
3 t = a
4 a = b
5 b = t
Remplir la table de trace suivante avec la valeur de chaque variable à chaque ligne du programme, et en déduire ce que fait ce programme.
Ligne | a |
b |
t |
---|---|---|---|
1 | |||
2 | |||
3 | |||
4 | |||
5 |
TP : Types et opérateurs¶
L'application Capytale permet d'utiliser des Notebooks : des fichiers qui permettent de faire du Python en ligne. Ils se découpent en plusieurs cellules : soit du texte, soit du code en Python. Pour exécuter les codes, il faut cliquer sur la cellule, puis sur "Exécuter". N'essayez pas de modifier les cellules texte !
Noter les réponses aux questions sur votre cahier de TP, et tout le code dans les cellules de code du Notebook.
On s'intéresse dans ce TP aux types de variables, et à l'utilisation d'opérateurs usuels permettant de faire des calculs sur ces variables.
-
Exécuter les scripts suivant. Quelle information donne la fonction
type
?a = "bonjour" type(a)
b = 15 type(b)
c = True type(c)
-
Quel est la valeur et le type de l'expression
6+10.0
? S'inspirer de la question 1 pour afficher la réponse dans la cellule suivante.6+10.0
-
a. Que se passe-t-il si l'on tape l'expression
1+'mot'
?
b. Relever l'erreur (la 3ème ligne qui s'affiche) produite en anglais, et en faire une traduction. Si besoin, utiliser un traducteur en ligne comme Google Translate. -
a. Le calcul de la question 3 n'avait pas beaucoup de sens, mais il est possible dans un programme de se retrouver avec un calcul du type
1+'5'
. Que va-t-il se passer ?b. Le vérifier avec le programme suivant :
nb1 = 1 nb2 = '5' print(nb1+nb2)
Note : L'instruction
print(...)
permet d'afficher ce qu'il y a entre les parenthèses.c. La fonction
input
permet de demander à l'utilisateur de rentrer lui-même une valeur pour une variable. Il la saisit au clavier, puis appuie sur la touche Entrée. On remplace la ligne 2 du programme précédent par celle-ci :nb1 = 1 nb2 = input("Entrer un nombre (entier ou flottant)") print(nb1+nb2)
d. Exécuter le programme. Que se passe-t-il ?
e. La valeur stockée dans
nb2
est de typestr
, pour faire des opérations avec cette variable et des nombres, il faut la convertir. On peut utiliser la fonctionint(...)
qui prend en paramètre une variable (entre les parenthèses) et la transforme en entier. Ajouter l'instruction suivante et vérifier que cela fonctionne :nb1 = 1 nb2 = input("Entrer un nombre (entier ou flottant)") # ajouter l'opération de conversion ici print(nb1+nb2)
-
On veut faire un convertisseur d'euros en dollars. En s'inspirant de la question 4, écrire un programme qui demande à l'utilisateur d'entrer une somme (un entier ou un flottant) en utilisant la fonction
input
, la multiplie par1.09
et affiche le résultat en dollars avec la fonctionprint
. -
Un personnage de jeu a un nombre entier de points de vie
point_de_vie
et on stocke dans une variabledegats
un entier correspondant aux points perdus. Ecrire un programme qui demande à l'utilisateur d'entrer un nombre de points de vie, stocké dans une variablepoint_de_vie
, puis un entierdegats
, et qui ensuite calcule et affiche le nombre de points de vie actualisé.