Python Variables

Identification

Infoforall

4 - Les variables dans Python


x = x + 1
x = x + 1 en math et en info, c'est pas pareil !

Nous allons en voir un peu plus sur les variables et donc la façon de stocker des informations pour les réutiliser plus tard.

calcul bizarre
Image issue de http://hcc-cs.weebly.com/variables.html

Cette image est une première approche, dans quelques activités, nous verrons le système qui se cache réellement derrière les variables de Python.

Les types int, float, str et bool vont nécessairement refaire surface. Et vous allez découvrir d'autres types de données.

Logiciel nécessaire pour l'activité : Thonny

Evaluation ✎ : questions 08-10-11-12-13-14

Documents de cours : open document ou pdf

Résumé : Version HTML ou fond blanc ou ou PDF (couleur ou gris)

1 - Cours : Les variables

Comment parvenir à enregistrer des données ? La réponse est simple : on les place dans une variable.

Dans un premier temps; voyez une variable comme une zone de stockage accessible en connaissant le nom de la zone.

Cette partie contient uniquement l'ensemble des bouts de cours.

Vous pouvez passer à la suite si vous êtes en train de faire l'activité en autonomie : les bouts de cours à connaître apparaitront au fur et à mesure des exercices.

1.1 Notion de VARIABLE

Python est un langage de programmation qui permet de stocker des données dans la mémoire de façon à les réutiliser plus tard.

Dans un premier temps, vous pouvez voir les variables comme des cartons permettant d'y ranger des choses.

calcul bizarre
Image issue de http://hcc-cs.weebly.com/variables.html

Imaginons qu'on veuille stocker 50 pour l'utiliser plus tard.

La syntaxe Python permettant de créer une variable a utilise un nouvel opérateur, l'opérateur =.

>>> a = 50

Sa structure est assez simple en apparence :

  • A GAUCHE : le nom de la variable voulue (ce nom ne peut pas contenir d'espace). Ici a.
  • AU MILIEU : l'opérateur =
  • A DROITE : la valeur qu'on veut associer à notre variable. Ici 50.

Maintenant que cette variable est en mémoire, on peut réutiliser sa valeur associée en utilisant juste son nom :

>>> a * 2 100 >>> a 50
1.2 Visualiser les variables dans Thonny

En sélectionnant le menu AFFICHAGE-VARIABLE, on obtient un panneau supplémentaire permettant de visualiser les variables placées en mémoire.

1.3 Vocabulaire : expression ou instruction ou affectation ?

Expression

Nous avions vu qu'une expression est un ensemble de valeurs associées à des opérateurs et que l'interpréteur peut évaluer l'expression pour en fournir la valeur.

Evaluation

Action d'évaluer une expression pour en fournir sa valeur.

>>> "bon" * 2 'bonbon'
  • "bon" et 2 sont des valeurs.
  • * est un opérateur.
  • "bon" * 2 est une expression.
  • 'bonbon' est le résultat de l'évaluation de l'expression, sa valeur.

On notera qu'évaluer une expression ne modifie pas l'état de la mémoire. On obtient juste une nouvelle valeur de façon temporaire.

Instruction

Qu'est-ce qu'une instruction ? Une modification de la mémoire. C'est tout.

Vous avez donc déjà vu plusieurs instructions.

  • L'instruction la plus fondamentale est l'affectation : on crée une variable en mémoire. On peut donc dire qu'on modifie l'état de la machine. Dans Thonny, cela se voit immédiatement : si vous tapez a = 5 dans la console, vous pourrez voir l'apparition immédiate de a dans le panneau de la mémoire : on a bien modifier son état.
  • L'utilisation d'une méthode du module Turtle est bien une instruction : on modifie l'affichage à l'écran et donc l'état de l'interface graphique. Nous avons donc modifier l'état des variables qui servent à définir ce que doit afficher Turtle.

Exemples

>>> a = "bon" * 2

Ceci est une instruction qu'on nomme une affectation.

>>> "bon" * 2 'bonbon'

Ceci est une juste une évaluation. Comme nous sommes en mode console, le résultat de l'évaluation est affichée puisque la ligne ne contient que cela. Mais l'état de la mémoire n'a pas été modifiée.

Conclusion

  • Une instruction modifie l'état de la machine
  • Une affection est une instruction particulière, et il s'agit d'ailleurs de l'instruction fondamentale.
  • Une expression ne modifie pas l'état de la mémoire. Elle permet juste de calculer une nouvelle valeur.
1.4 Sens d'exécution de l'affectation

Une affectation se fait toujours de la droite vers la gauche.

  1. On évalue l'expression située à droite de l'opérateur d'affectation =.
  2. On affecte le résultat de cette évaluation à la variable qui est située à gauche.
>>> a = 10 >>> b = 8 + 5*a >>> b 58

Pour traiter b = 8 + 5*a, l'interpréteur va gérer les opérations progressivement. Analysons ceci en tant qu'humain :

  • On évolue d'abord la partie de droite
  • b = 8 + 5*a
  • b = 8 + 5*10
  • b = 8 + 50
  • b = 58
  • Maintenant qu'on connaît la valeur de l'expression, on peut réaliser l'affectation entre variable et valeur.

C'est pour cela qu'en algorithmique, on trouve souvent cette façon d'écrire une affectation :

a5

Beaucoup de langage de programmation utilise plutôt le glyphe = car il est présent sur les claviers d'ordinateur, ou := pour éviter toute confusion avec l'opérateur d'égalité (== en Python)

a = 5

a := 5

Il ne s'agit que d'une convention d'écriture : un choix de syntaxe.

1.5 Version naîve de la boîte

Dans 90% des cas, vous pouvez voir les variables comme le nom d'une boîte contenant quelque chose. Lorsqu'on tape ce nom, Python vous renvoie le contenu de la boîte.

On pourrait ainsi représenter a et b de cette façon :

représentation en boîte
>>> a 5 >>> b 9

Cela reviendrait donc à se dire : "Que contient a ? Que contient b ?"

Cette façon de faire ne fonctionnera néanmoins qu'un temps. Nous aurons bientôt besoin d'en savoir plus sur la nature exacte d'une variable en Python.

1.6 - Incrémentation

Incrémenter veut dire qu'on augmente la valeur associée à la variable en utilisant la valeur actuelle attribuée à cette variable.

Imaginons une variable x qui référencerait 5 initialement.

Si on l'incrémente de 1, x passerait de 5 à 6 : on lui attribue 5+1.

Si on l'incrémente de 10 ensuite, x passerait de 6 à 16 : on lui attribue 6+10.

Une incrémentation est donc une instruction : après son exécution, l'état de la variable est modifié.

Pour incrémenter a de 1, il faut donc

  1. a = a + 1 : évaluer la valeur actuelle de a,
  2. a = a + 1 : évaluer ce que donne cette valeur + 1 et
  3. a = a + 1 : affecter le résultat de cette évaluation à a.
1 2
a = 10 a = a + 1
1.7 - Pas de retroaction

Il faut bien comprendre qu'on retrouve ici la notion de séquentialité : si une variable est définie à un certain moment à partir du contenu d'une autre variable, la modification ultérieure de cette variable n'aura aucune conséquence !

>>> a = 10 >>> b = a >>> a = 20 >>> b 10
Fonctionnement de la console

A comprendre et apprendre impérativement pour ne pas s'embrouiller pour rien :

Lors du fonctionnement Console interative, la console affiche le résultat finale d'une évaluation si cette évaluation est la seule chose présente sur la ligne.

Exemple avec juste une évaluation

>>> 7 + 2 9

La console affiche 9 car cette ligne ne comporte qu'une simple évaluation. Par défaut, le résultat apparaitra à l'écran.

Exemple avec juste une évaluation

>>> b = 7 + 2

La console n'affiche pas 9 car cette ligne est une affectation. Elle comporte une évaluation à faire (à droite) mais il ne s'agit pas juste d'une évaluation.

1.8 - Permutation de deux contenus

Voyons une chose très courante dans la vie courante et en informatique : la permutation de deux contenus.

Si vous voulez inverser l'objet qui se trouve dans votre poche gauche et l'objet qui se trouve dans votre poche droite, en tant qu'humain, c'est facile puisque vous avez deux mains (même si cela demande un peu de contorsion)

L'ordinateur, lui, ne peut faire qu'une chose à la fois. Il a donc besoin d'un stockage temporaire d'informations pour parvenir à inverser le contenu de deux variables.

Si vous voulez mettre l’argent argentGauche dans argentDroite et inversement, nous allons devoir utiliser une troisième variable temporaire car l'ordinateur n'a qu'une "main". On pourrait la nommer videPoche.

Cela se fait en 3 étapes :

  1. videPoche = argentDroite
  2. --> on copie dans le vide poche le contenu de droite

  3. argentDroite = argentGauche
  4. --> on écrase la valeur à droite en y plaçant la valeur à gauche. Si nous n'avions pas le vide poche, nous aurions juste deux variables contenant la même valeur et nous aurions perdu ce qu'il y avait dans la poche de droite.

  5. argentGauche = videPoche
  6. --> on écrase la valeur à gauche en y plaçant le contenu de la variable temporaire qui contient la valeur initialement à droite

Inversion en trois étapes
CLIQUER SUR L'IMAGE pour ANIMER ou STOPPER

Méthode en 3 lignes avec Python

>>> g = 7 >>> d = 55 >>> temp = d >>> d = g >>> g = temp >>> g 55 >>> d 7

Méthode en une ligne, un facilitateur avec Python

Le but de la NSI est de comprendre comment cela fonctionne. Dans un premier temps, on vous demandera donc d'appliquer plutôt la méthode en 3 lignes. Mais comme c'est très courant de faire cela, il existe une syntaxe permettant d'intervertir les deux contenus en une seule ligne : g,d = d,g.

>>> g = 7 >>> d = 55 >>> g,d = d,g >>> g 55 >>> d 7

Comprennez bien que dans les premières mois de NSI, vous aurez d'abord à utiliser la méthode en 3 lignes. Une fois que cela sera acquis, vous aurez le droit à la permutation en une ligne (et nous verrons comment cela fonctionne).

1.9 - Affectation multiple

Un autre facilicitateur que nous éviterons d'utiliser mais que vous pourriez rencontrer :

>>> a = b = c = 10 >>> a 10 >>> b 10 >>> c 10

2 - Exercices

1.1 Notion de VARIABLE

Python est un langage de programmation qui permet de stocker des données dans la mémoire de façon à les réutiliser plus tard.

Dans un premier temps, vous pouvez voir les variables comme des cartons permettant d'y ranger des choses.

calcul bizarre
Image issue de http://hcc-cs.weebly.com/variables.html

Imaginons qu'on veuille stocker 50 pour l'utiliser plus tard.

La syntaxe Python permettant de créer une variable a utilise un nouvel opérateur, l'opérateur =.

>>> a = 50

Sa structure est assez simple en apparence :

  • A GAUCHE : le nom de la variable voulue (ce nom ne peut pas contenir d'espace). Ici a.
  • AU MILIEU : l'opérateur =
  • A DROITE : la valeur qu'on veut associer à notre variable. Ici 50.

Maintenant que cette variable est en mémoire, on peut réutiliser sa valeur associée en utilisant juste son nom :

>>> a * 2 100 >>> a 50
1.2 Visualiser les variables dans Thonny

En sélectionnant le menu AFFICHAGE-VARIABLE, on obtient un panneau supplémentaire permettant de visualiser les variables placées en mémoire.

1.3 Vocabulaire : expression ou instruction ou affectation ?

Expression

Nous avions vu qu'une expression est un ensemble de valeurs associées à des opérateurs et que l'interpréteur peut évaluer l'expression pour en fournir la valeur.

Evaluation

Action d'évaluer une expression pour en fournir sa valeur.

>>> "bon" * 2 'bonbon'
  • "bon" et 2 sont des valeurs.
  • * est un opérateur.
  • "bon" * 2 est une expression.
  • 'bonbon' est le résultat de l'évaluation de l'expression, sa valeur.

On notera qu'évaluer une expression ne modifie pas l'état de la mémoire. On obtient juste une nouvelle valeur de façon temporaire.

Instruction

Qu'est-ce qu'une instruction ? Une modification de la mémoire. C'est tout.

Vous avez donc déjà vu plusieurs instructions.

  • L'instruction la plus fondamentale est l'affectation : on crée une variable en mémoire. On peut donc dire qu'on modifie l'état de la machine. Dans Thonny, cela se voit immédiatement : si vous tapez a = 5 dans la console, vous pourrez voir l'apparition immédiate de a dans le panneau de la mémoire : on a bien modifier son état.
  • L'utilisation d'une méthode du module Turtle est bien une instruction : on modifie l'affichage à l'écran et donc l'état de l'interface graphique. Nous avons donc modifier l'état des variables qui servent à définir ce que doit afficher Turtle.

Exemples

>>> a = "bon" * 2

Ceci est une instruction qu'on nomme une affectation.

>>> "bon" * 2 'bonbon'

Ceci est une juste une évaluation. Comme nous sommes en mode console, le résultat de l'évaluation est affichée puisque la ligne ne contient que cela. Mais l'état de la mémoire n'a pas été modifiée.

Conclusion

  • Une instruction modifie l'état de la machine
  • Une affection est une instruction particulière, et il s'agit d'ailleurs de l'instruction fondamentale.
  • Une expression ne modifie pas l'état de la mémoire. Elle permet juste de calculer une nouvelle valeur.
1.4 Sens d'exécution de l'affectation

Une affectation se fait toujours de la droite vers la gauche.

  1. On évalue l'expression située à droite de l'opérateur d'affectation =.
  2. On affecte le résultat de cette évaluation à la variable qui est située à gauche.
>>> a = 10 >>> b = 8 + 5*a >>> b 58

Pour traiter b = 8 + 5*a, l'interpréteur va gérer les opérations progressivement. Analysons ceci en tant qu'humain :

  • On évolue d'abord la partie de droite
  • b = 8 + 5*a
  • b = 8 + 5*10
  • b = 8 + 50
  • b = 58
  • Maintenant qu'on connaît la valeur de l'expression, on peut réaliser l'affectation entre variable et valeur.

C'est pour cela qu'en algorithmique, on trouve souvent cette façon d'écrire une affectation :

a5

Beaucoup de langage de programmation utilise plutôt le glyphe = car il est présent sur les claviers d'ordinateur, ou := pour éviter toute confusion avec l'opérateur d'égalité (== en Python)

a = 5

a := 5

Il ne s'agit que d'une convention d'écriture : un choix de syntaxe.

01 ✔° Dans Thonny, sélectionner le menu AFFICHAGE-VIEW et y prendre l'option VARIABLES. Vous devriez voir un panneau s'afficher sur la droite.

02° Taper la commande ci-dessous dans la console de Thonny.

Questions

  • La console affiche-t-elle quelque chose ?
  • Voyez-vous apparaître quelque chose dans le panneau VARIABLES situé à droite ?
>>> 5 5 >>> 7 + 2 9

...CORRECTION...

L'interpréteur Python évalue  5  et  7 + 2  et il affiche les résultats. Pourquoi ?

La console (ou le shell dans la version anglaise) est la destination par défaut de l'évaluation d'une expression   si on ne lui indique pas ce qu'il doit faire de la réponse, on la dirige vers la console.

Rien n'apparaît dans le panneau de droite : aucune variable n'est créée spontanément.

03° Taper la commande ci-dessous dans la console de Thonny.

Questions

  • La console affiche-t-elle quelque chose ?
  • Voyez-vous apparaître quelque chose dans le panneau VARIABLES situé à droite ?
>>> a = 5 >>> b = 7 + 2

...CORRECTION...

La console évalue  5  et  7 + 2  mais ne les affiche pas. Pourquoi ?

Cette fois, on lui demande de faire quelque chose de l'expression : le signe  =  veut dire de placer le résultat dans la variable placée devant le signe égal.

Ici, on place donc les résultats 5 et 9 dans des variables plutôt que de les envoyer à l'affichage.

De plus, on voit apparaître les deux variables dans le panneau de droite : cette fois, on a bien rangé ces deux valeurs en mémoire.

Fonctionnement de la console

A comprendre et apprendre impérativement pour ne pas s'embrouiller pour rien :

Lors du fonctionnement Console interative, la console affiche le résultat finale d'une évaluation si cette évaluation est la seule chose présente sur la ligne.

Exemple avec juste une évaluation

>>> 7 + 2 9

La console affiche 9 car cette ligne ne comporte qu'une simple évaluation. Par défaut, le résultat apparaitra à l'écran.

Exemple avec juste une évaluation

>>> b = 7 + 2

La console n'affiche pas 9 car cette ligne est une affectation. Elle comporte une évaluation à faire (à droite) mais il ne s'agit pas juste d'une évaluation.

1.5 Version naîve de la boîte

Dans 90% des cas, vous pouvez voir les variables comme le nom d'une boîte contenant quelque chose. Lorsqu'on tape ce nom, Python vous renvoie le contenu de la boîte.

On pourrait ainsi représenter a et b de cette façon :

représentation en boîte
>>> a 5 >>> b 9

Cela reviendrait donc à se dire : "Que contient a ? Que contient b ?"

Cette façon de faire ne fonctionnera néanmoins qu'un temps. Nous aurons bientôt besoin d'en savoir plus sur la nature exacte d'une variable en Python.

04° Taper les commandes ci-dessous dans la console de Thonny.

Questions :

  • comment parvient-on à récupérer la valeur stockée dans une variable depuis la console ?
  • comment peut-on parvenir à récupérer le type du contenu référencé par une variable ?
>>> a = 5 >>> b = 7.0 + 2 >>> a 5 >>> type(a) <class 'int'> >>> b 9.0 >>> type(b) <class 'float'>

...CORRECTION...

Une fois qu'une variable a été affectée, on peut récupérer son contenu associé en tapant simplement son nom. Celui-ci correspond alors à un alias permettant d'obtenir le contenu de la zone mémoire corresopndante.

La fonction native type() permet de récupérer le type des données référencées par une variable.

✎ 05° Expliquer clairement les résultats obtenus lors de ces deux évaluations :

>>> a = 5 >>> b = 9 >>> a*2 10 >>> a + b 14

06° Sans taper les lignes de commandes, estimer les deux résultats qui seraient affichés à l'écran. Soyez vigilant !

Vérifier et demandez conseil si le résultat vous surprend.

>>> a = 5 >>> b = 10 >>> a = 2 >>> a + 2*b ... >>> c = (a+2) * b ... >>> c*2 ...

...CORRECTION...

De façon séquentielle, on obtient les choses suivantes :

  1. Une variable nommée a fait référence à 5.
  2. Une variable nommée b fait référence à 10.
  3. Une variable nommée a fait référence à 2, on écrase donc l'ancienne référence.
  4. On évalue l'expression a + 2*b qui donne donc 2 + 2*10, soit 22. Comme on ne fait rien de cette évaluation, la console affiche le résultat.
  5. On évalue l'expression (a+2) * b qui donne donc (2+2) * 10, soit 40. On affecte ce résultat à une variable c. La console ne va donc rien afficher puisqu'on fait quelque chose de notre évaluation précédente.
  6. On évalue l'expression c *2 qui donne donc 40 * 2, soit 80. Comme on ne fait rien de cette évaluation, la console affiche le résultat.
1.6 - Incrémentation

Incrémenter veut dire qu'on augmente la valeur associée à la variable en utilisant la valeur actuelle attribuée à cette variable.

Imaginons une variable x qui référencerait 5 initialement.

Si on l'incrémente de 1, x passerait de 5 à 6 : on lui attribue 5+1.

Si on l'incrémente de 10 ensuite, x passerait de 6 à 16 : on lui attribue 6+10.

Une incrémentation est donc une instruction : après son exécution, l'état de la variable est modifié.

Pour incrémenter a de 1, il faut donc

  1. a = a + 1 : évaluer la valeur actuelle de a,
  2. a = a + 1 : évaluer ce que donne cette valeur + 1 et
  3. a = a + 1 : affecter le résultat de cette évaluation à a.
1 2
a = 10 a = a + 1

07° Que vaut a après avoir tout executé ?

>>> a = 20 >>> a = a + 1 >>> a ... >>> a = a + 1 >>> a ... >>> a = a + 2 >>> a ...

...CORRECTION...

>>> a = 20 >>> a = a + 1 >>> a 21 >>> a = a + 1 >>> a 22 >>> a = a + 2 >>> a 24

On part de 20 et on incrémente deux fois de 1 et une fois de 2. On atteint donc 24.

✎ 08° Expliquer, en la justifiant, la valeur finale qui sera attribuée à b sur la dernière ligne.

>>> b = 10 >>> b = b + 1 >>> b = b * 2 >>> b ...

09° Expliquer les deux affichages obtenus :

>>> a = 5 >>> type(a) >>> a*2 ... >>> b = str(a) >>> type(b) >>> b*2 ...

...CORRECTION...

1e cas : a désigne 5, un integer.

L'opérateur * appliqué sur a revient donc à faire une multiplication et donne bien 10.

b désigne elle la version string de 5 : "5".

L'opérateur * appliqué sur a revient donc à faire une répétition : b * 2 est alors évaluée à "55"

✎ 10° Expliquer, en la justifiant, la valeur finale qui sera attribuée à b sur la dernière ligne.

>>> a = "10" >>> b = 2 * a >>> b ...

✎ 11° Expliquer, en la justifiant, la valeur finale qui sera attribuée à b sur la dernière ligne.

>>> a = 10 >>> b = a >>> b = b + 1 >>> b ...
1.7 - Pas de retroaction

Il faut bien comprendre qu'on retrouve ici la notion de séquentialité : si une variable est définie à un certain moment à partir du contenu d'une autre variable, la modification ultérieure de cette variable n'aura aucune conséquence !

>>> a = 10 >>> b = a >>> a = 20 >>> b 10

✎ 12° Expliquer, en la justifiant, la valeur finale qui sera attribuée à b sur la dernière ligne.

>>> a = 10 >>> b = 2 * a >>> a = 0 >>> b ...

✎ 13° Sans taper les lignes de commandes, tenter de trouver la valeur finale qui sera attribuée à b sur la dernière ligne. Justifier votre avis. Vérifier.

>>> a = "1" >>> b = "2" >>> b = a + b >>> b = b * 3 >>> b ...

✎ 14° Sans taper les lignes de commandes, tenter de trouver la valeur finale qui sera attribuée à b sur la dernière ligne. Justifier votre avis. Vérifier.

>>> a = "1" >>> b = "2" >>> b = a + b >>> b = int(b) >>> b = b * 3 >>> b ...
1.8 - Permutation de deux contenus

Voyons une chose très courante dans la vie courante et en informatique : la permutation de deux contenus.

Si vous voulez inverser l'objet qui se trouve dans votre poche droite et l'objet qui se trouve dans votre poche droite, en tant qu'humain, c'est facile puisque vous avez deux mains (même si cela demande un peu de contorsion)

L'ordinateur, lui, ne peut faire qu'une chose à la fois. Il a donc besoin d'un stockage temporaire d'informations pour parvenir à inverser le contenu de deux variables.

Si vous voulez mettre l’argent argentGauche dans argentDroite et inversement, nous allons devoir utiliser une troisième variable temporaire car l'ordinateur n'a qu'une "main". On pourrait la nommer videPoche.

Cela se fait en 3 étapes :

  1. videPoche = argentDroite
  2. --> on copie dans le vide poche le contenu de droite

  3. argentDroite = argentGauche
  4. --> on écrase la valeur à droite en y plaçant la valeur à gauche. Si nous n'avions pas le vide poche, nous aurions juste deux variables contenant la même valeur et nous aurions perdu ce qu'il y avait dans la poche de droite.

  5. argentGauche = videPoche
  6. --> on écrase la valeur à gauche en y plaçant le contenu de la variable temporaire qui contient la valeur initialement à droite

Inversion en trois étapes
CLIQUER SUR L'IMAGE pour ANIMER ou STOPPER

Méthode en 3 lignes avec Python

>>> g = 7 >>> d = 55 >>> temp = d >>> d = g >>> g = temp >>> g 55 >>> d 7

Méthode en une ligne, un facilitateur avec Python

Le but de la NSI est de comprendre comment cela fonctionne. Dans un premier temps, on vous demandera donc d'appliquer plutôt la méthode en 3 lignes. Mais comme c'est très courant de faire cela, il existe une syntaxe permettant d'intervertir les deux contenus en une seule ligne : g,d = d,g.

>>> g = 7 >>> d = 55 >>> g,d = d,g >>> g 55 >>> d 7

15° Réaliser la permutation des variables x et y en utilisant une variable temporaire intermédiaire.

>>> x = "Alice" >>> y = "Bob"

...CORRECTION...

>>> x = "Alice" >>> y = "Bob" >>> temp = x >>> x = y >>> y = temp >>> x 'Bob' >>> y 'Alice'

16° Réaliser la permutation des variables x et y en une seule ligne.

>>> x = "Alice" >>> y = "Bob"

...CORRECTION...

>>> x = "Alice" >>> y = "Bob" >>> x,y = y,x >>> x 'Bob' >>> y 'Alice'

3 - Remarques importantes

Quelques remarques à connaitre et à respecter :

Minuscule initiale

Vous remarquerez que tous les noms utilisés sur mes variables commencent par une minuscule. Respectez cette habitude. Les majuscules, c'est pour autre chose.

Noms explicites

Les ordinateurs ont suffisamment de mémoire pour créer des variables de plus d'une lettre. Si possible, donnez à vos variables des noms explicites : des noms permettant de savoir au premier coup d'oeil ce qu'elles contiennent. a, b ou c, ce n'est pas forcément explicite.

On n'utilisera d'ailleurs jamais de variable dont le nom est un l (L minuscule) : il est trop difficile à distinguer d'un I (I majuscule) !

Par exemple, si une variable contient par exemple le nombre de paquets de chips à acheter, on pourrait prendre :

  • x ? Plutôt non, on ne comprend pas ce que contient cette variable.
  • nombre_de_paquets_de_chips ? Plutôt non, trop long.
  • nombre_paquets ? Ok.
  • nbr_paquets ? Ok.
  • nb_paquets ? Ok.
  • nb ? Ok si il n'y a qu'un nombre de choses à compter dans votre programme.
Pas d'espace dans un nom de variable

Dans la syntaxe de la plupart des langages de programmation, l'espace ne peut pas faire partie des noms de variables pour la simple et bonne raison qu'il joue le rôle de caractères délimitateurs.

Comment faire alors si le nom nécessite l'utilisation de plusieurs mots ?

Python est sensible à la casse : cela veut dire qu'il distingue les minuscules et les majuscules. Les variables toto et toTO désignent deux variables différentes.

Pour ne pas se perdre dans les notations, on propose de choisir (dès le début de la réalisation d'un programme) d'utiliser l'une des deux conventions suivantes pour les variables composées de plusieurs mots :

  • utiliser des underscores entre les mots (cela se nomme le snake case)
    • concentration_initiale
    • vitesse_voiture
    • debit_entree
  • Utiliser une majuscule pour séparer les mots (cela se nomme le Camel Case)
    • concentrationInitiale
    • vitesseVoiture
    • debitEntree
Noms interdits

Vous avez déjà vu que certains noms ne doivent pas être donnés à vos programme : turtle.py, math.py...

De la même façon, il existe une liste des noms réservés qu'on ne peut pas utiliser comme nom de variable car l'interpréteur Python les utilise déjà comme mots-clés lorsqu'il analyse le texte de votre script :

False class finally is return None continue for lambda try True def from nonlocal while and del global not with as elif if or yield assert else import pass break except in raise

LIEN EXTERNE VERS LA DOCUMENTATION PYTHON

Accents et caractères spéciaux

Python accepte n'importe quel caractère (à part l'espace) dans les noms de variables.

Prenez néanmoins l'habitude de ne pas en placer car certains langages de programmation ne permettent pas de placer de tels caractères.

En plus, les programmes devraient être écrits en anglais, donc ce n'est pas vraiment un problème. Cette année, je garderai des noms en Français.

Voici pour les variables.

L'activité suivante traite de trois types particuliers puisqu'on va obtenir des variables permettant de stocker plusieurs valeurs, et pas juste une valeur.

4 - FAQ

On peut détruire une variable ?

Oui, on peut libérer la place mémoire attribuée à une variable. Pour cela, il faut utiliser le mot-clé del.

Exemple :

>>> a = 5 >>> a 5 >>> del a >>> a NameError: name 'a' is not defined

J'ai vu une notation bizarre : a += 1

Effectivement, on peut également utiliser une autre notation.

1 2
a = 10 a += 1

Cela donne ici le même résultat que ceci :

1 2
a = 10 a = a + 1

Attention, les deux façons de faire sont équivalentes ici, mais pas toujours. Evitez ces notations pour l'instant. De toutes manières, elles ne seront pas utilisées dans les sujets de NSI. Gardez la méthode n°2. C'est plus long mais c'est moins compliqué à comprendre de toutes manières.

Reste encore un problème.

Si j'ai 1000 données à stocker, je vais avoir besoin de 1000 variables. Pas cool. La solution dans l'activité suivante.

Activité publiée le 28 08 2019
Dernière modification : 17 09 2022
Auteur : ows. h.