Variable

Lang 03

Durée conseillée: 15 minutes

Activité 1

Information

En assembleur, on peut repérer un emplacement mémoire par un label (une étiquette): on référence l’emplacement mémoire par une variable.

Quand l’interpréteur exécute le code Python suivant, plusieurs étapes sont réalisées:

ma_var = 45
  • L’entier 45 est stocké dans un emplacement mémoire.
  • Une étiquette ma_var est créée.
  • L’étiquette ma_var référence l’emplacement mémoire du 45.

CPU et mémoire CPU et mémoire

Vocabulaire

On affecte la valeur 45 à la variable ma_var avec le symbole =.

À l’aide du matériel variables:
  1. Réaliser les étapes du code Python suivant:
ma_var = 45
ma_deuxieme = ma_var

Plusieurs références Plusieurs références

Information

On peut référencer un même emplacement avec plusieurs variables.

  1. Réaliser les étapes du code Python suivant:
ma_var = 45
ma_deuxieme = ma_var
ma_var = 61

Plusieurs références Plusieurs références

Nouvel espace mémoire Nouvel espace mémoire

Information

Un nouvel emplacement est trouvé pour stocker la nouvelle valeur. La variable est réaffectée.

Activité 2

Information

Quand le programme demande de réaliser un calcul, une copie des valeurs sont envoyées au CPU.

À l’aide du matériel variables:
  1. Réaliser les étapes du code Python suivant:
x = 3
y = 5
z = x + y

ligne 1-2 ligne 1-2 Ligne 1-2: La valeur 3 est affectée à la variable x. La valeur 5 est affectée à la variable y.

ligne 3 ligne 3 Ligne 3: Les valeurs référencées par x (3) et y (5) sont envoyées au CPU. Ce-dernier effectue le calcul demandé.

ligne 3 encore ligne 3 encore Ligne 3: Le résultat est stocké dans la mémoire. La valeur 8 est affectée à la variable z.

Information

Un nouvel emplacement est trouvé par Python, dans la mémoire, pour stocker la nouvelle valeur.

Information

L’évaluation de la ligne 3 se fait de droite à gauche: calcul puis affectation.

  1. Réaliser les étapes du code Python suivant:
x = 5
x = x + 1

ligne 1 ligne 1 Ligne 1: La valeur 5 est affectée à la variable x.

ligne 2 ligne 2 Ligne 2: La valeur référencée par x (5) et la valeur 1 sont envoyées au CPU. Ce-dernier effectue le calcul demandé.

ligne 2 encore ligne 2 encore Ligne 2: Le résultat est stocké dans la mémoire. La variable x est réaffectée.

Information

Un nouvel emplacement est trouvé par Python, dans la mémoire, pour stocker la nouvelle valeur.

À retenir

L’évaluation de la ligne 2 se fait de droite à gauche: calcul puis affectation.

Remarque

La valeur 5 n’est plus référencée. Le ramasse-miettes (garbage collector) de Python libérera automatiquement les espaces mémoires non utilisés.

Activité 3

À l’aide du matériel variables:
  1. Réaliser les étapes du code suivant:
var1 = 2
var2 = 3
var1 = var2
var2 = var1
  1. Quelles valeurs référencent chacune des deux variables? Était-ce réellement la volonté du développeur?

À la fin du code, les variables référencent toutes les deux la valeur 3. Quand on regarde les deux dernières lignes du code, on peut supposer que le développeur voulait inverser les valeurs référencées par les variables.

  1. Proposer une solution pour réaliser la correction précédente. Le mettre en application avec le matériel.
var1 = 2
var2 = 3
tmp = var1
var1 = var2
var2 = tmp

Activité 4

Remarque

PEP 8 (pour Python Extension Proposal) est un ensemble de règles qui permet d’homogénéiser le code et d’appliquer de bonnes pratiques.

Parcourir la page du naming conventions et valider les noms de variables corrects:

  • ma_reponse
  • maReponse
  • ma-reponse
  • ma reponse
  • ma_réponse
  • ma_reponse2
  • 2ma_reponse
  • _ma_reponse
  • ma_reponse snake_case: solution à privilégier
  • maReponse camelCase: correct mais pas recommandé en Python (utilisé en javascript par exemple)
  • ma-reponse incorrect: le - n’est pas accepté
  • ma reponse incorrect: l’espace n’est pas accepté
  • ma_réponse correct: mais une bonne habitude consiste à ne pas utiliser d’accent dans les noms de variables
  • ma_reponse2 correct
  • 2ma_reponse incorrect: un nom de variable ne peut pas commencer par un chiffre
  • _ma_reponse correct
À retenir

Dans la mesure du possible, on appliquera les règles de la PEP8, dans l’écriture des codes.