Skip to content

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.

  1. Combien a-t-il d'amis au total au bout d'un an ?

  2. 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 vaut y ? ...............

    Code

    x = 1
    y = 5
    y = x + 2
    

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.

  1. Exécuter les scripts suivant. Quelle information donne la fonction type ?

    a = "bonjour"
    type(a)
    
    b = 15
    type(b)
    
    c = True
    type(c)
    
  2. 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
    
  3. 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.

    
    
  4. 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 type str, pour faire des opérations avec cette variable et des nombres, il faut la convertir. On peut utiliser la fonction int(...) 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)
    
  5. 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 par 1.09 et affiche le résultat en dollars avec la fonction print.

    
    
  6. Un personnage de jeu a un nombre entier de points de vie point_de_vie et on stocke dans une variable degats un entier correspondant aux points perdus. Ecrire un programme qui demande à l'utilisateur d'entrer un nombre de points de vie, stocké dans une variable point_de_vie, puis un entier degats, et qui ensuite calcule et affiche le nombre de points de vie actualisé.