Python Variables

Identification

Infoforall

4 - Les variables dans Python


Nous allons voir comment stocker des informations pour les réutiliser ensuite sans avoir à les récrire.

Les notions de int, float et string vont nécessairement refaire surface.

Pour fournir une introduction à cette notion de variable, nous allons utiliser un environnement de développement : un ensemble logiciel permettant de programmer, de sauvegarder son travail et possèdant un ensemble d'outils pour concevoir, dégugger et organiser son travail. Vous n'allez donc plus manipuler Python directement à travers la console mais à travers un logiciel se nommant Thonny. Il s'agit d'un logiciel développé par l'Université de Tartu en Estonie.

Logiciel nécessaire pour l'activité : Thonny

Evaluation ✎ : questions 11-12-13-14-15-16

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

1 - Thonny

Si Thonny n'est pas installé, il est temps d'aller voir l'article sur l'installation de Python et de Thonny dans le menu du haut de page.

Voici d'abord un peu de documentation pour ouvrir et présenter un peu Thonny. Je vous conseille de l'ouvrir et de l'utiliser en même temps qu'on y présente des choses.

Ouvrir Thonny sous Windows :

Rien de particulier : on clique sur l'icône.

Ouvrir Thonny sous Linux :

Si vous êtes en environnement graphique : on clique sur l'icône disponible dans les applications.

Si vous disposez d'un terminal, on peut utiliser la commande suivante :

rv@monordi:~$ thonny &

L'utilisation du & permet simplement de reprendre la main sur le terminal pendant l'exécution de Thonny.

Utiliser la Console de Thonny :

Une fois le logiciel lancé, vous obtiendrez ceci :

  • La partie du haut permet de créer des scripts qu'on pourra enregistrer et exécuter
  • La partie du bas avec trois chevrons >>> permet de taper du code à exécuter directement en mode interactif. C'est cette partie que nous allons exploiter aujourd'hui.

Rien de bien particulier : le shell se comporte comme la console que nous avons ouvert dans l'activité précédente.

Il permet de taper du code Python qui sera exécuté immédiatement.

01° Ouvrir Thonny et tester sa console avec quelques évaluations simples.

Quelle différence par rapport à la dernière fois ?

On peut installer Thonny sans avoir installé Python : Thonny peut utiliser sa propre version embarquée de Python !

On voit ainsi que l'utilisateur interagit avec une version de Python interne à Thonny. On parle d'environnement virtuel. Dans cette configuration, il n'y a pas nécessairement de liaison avec l'installation Python 3 présente (ou non) sur le reste de l'ordinateur.

2 - Variable

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

Voyez dans un premier temps une variable comme une zone de stockage accessible en connaissant le nom de la zone.

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

03° Taper la commande ci-dessous dans la Console de Thonny. La Console affiche-t-elle quelque chose ? Voyez-vous apparaître quelque chose dans le panneau de droite ?

>>> 5 5
>>> 7 + 2 9

...CORRECTION...

La Console évalue  5  et  7 + 2  et il affiche les résultats. Pourquoi ?

La console ou le shell est la destination par défaut de l'évaluation d'une expression si on ne lui demande pas particulièrement de faire autre chose que d'évaluer.

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

04° Taper la commande ci-dessous dans la Console de Thonny. La Console affiche-t-elle quelque chose ? Que voyez-vous apparaître dans le panneau de 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.

05° Taper les commandes ci-dessous dans la Console de Thonny. La Console affiche-t-elle quelque chose ? Comment parvient-on à récupérer la valeur stockée dans une variable ?

>>> a 5
>>> type(a) <class 'int'>
>>> b 9
>>> type(b) <class 'int'>

...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.

Déclaration et affectation

Et voilà, vous venez de déclarer (créer) votre première variable  a  à l'aide d'un  =  pour affecter 5 dans une case mémoire.

Cette opération se nomme une affectation.

On pourra retrouver la valeur en tapant simplement a.

En Python, la déclaration et l'affectation se fait en même temps puisqu'on ne choisit pas le type de variable. D'autres langages imposent de choisir le type de variable avant de pouvoir y affecter une valeur.

Ainsi, à chaque fois qu'on tapera a dans une expression, l'interpréteur Python remplacera cette variable par ce qui est stocké à l'adresse correspondante.

Ici, votre variable contient un entier, un Integer en langage informatique.

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

06° Vérifier le bon fonctionnement des expressions suivantes :

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

07° Sans taper les lignes de commandes, tenter de trouver le résultat qui sera affiché à l'écran. Vérifier.

>>> a + 2*b >>> (a+2) * b

3 - Type et modification de type

Nous avons vu que nous pouvions faire plusieurs choses avec une variable :

  • Renvoyer la valeur auquelle elle fait référence simplement en tapant son nom
  • Renvoyer le type de grandeur qu'elle stocke (int, float, booléen ou string pour l'instant) : fonction type

Pour rappel, voici le récapitulatif de ces différents types :

Type de variableNom du type pour PythonCe qu'il peut contenir
Booléen / BooleanboolFalse or True (avec une majuscule)
Entier / IntegerintUn nombre entier comme 12
Nombre réel / FloatfloatUn nombre à virgule comme 12.0 ou 12.5
Chaîne de caractère / StringstrUne chaîne de caractères, c'est-à-dire un mot ou une phrase. On la définit entre deux guillemets ou apostrophes."chaîne de caractère" 'autre chaîne de caractère'

Et si nous placions un string dans la variable a ?

>>> a = "5" >>> a*2 '55'
>>> type(a) <class 'str'>
>>> type(a*2) <class 'str'>

08° Pourquoi obtient-on "55" et pas 10 ?

...CORRECTION...

On crée une variable a qui désigne un STRING "5".

Lorsqu'on demande de multiplier le string par 2, Python va alors simplement comprendre qu'on veut 2 "5" , soit "55" .

Comme vous le voyez, connaitre le type des données est important. Comment savoir à l'avance ce que désigne une variable ? Il faut utiliser une fonction native de Python : type.

09° Lancer les instructions suivantes pour vérifier le type de réponse obtenue. Vous remarquerez au passage qu'on n'utilise pas les accents dans les noms de variables.

>>> premiere = 5 >>> type(premiere) <class 'int'>
>>> deuxieme = "5" >>> type(deuxieme) <class 'str'>
>>> troisieme = 5.0 >>> type(troisieme) <class 'float'>

...CORRECTION...

La fonction type permet donc d'obtenir le type de la données stockée à l'adresse mémoire pointée par la variable.

Si on stocke 5, on obtient une variable de type int pour integer (nombre entier)

Si on stocke "5", on obtient une variable de type str pour string (chaîne de caractères)

Si on stocke 5.0, on obtient une variable de type float pour float (nombre réel ou nombre à virgule flottante)

Modifier un type de variable

On peut bien entendu tenter de transformer un type de variable en une autre. Pour cela, on utilise les fonctions natives suivantes :

  • int pour tenter de transformer en entier.
  • float pour tenter de transformer en réel.
  • str pour tenter de transformer en chaîne de caractères.

10° Lancer les instructions suivantes pour comprendre ce que fait la fonction str :

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

...CORRECTION...

1e cas : a est un integer. On obtient un string b.

b désigne "5".

2*b désigne "55"

5 petites remarques à connaitre et à respecter pour finir :

Remarque 1 : vous remarquerez que tous les noms de variables commencent par une minuscule. Respectez cette habitude. Les majuscules, c'est pour autre chose.

Remarque 2 : il existe une liste des noms réservés qu'on ne peut pas utiliser car l'interpréteur Python les utilise déjà comme mots-clés lorsqu'il analyse le texte qu'on lui fournit  :

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

Remarque 3 : Les ordinateurs ont suffisamment de mémoire désormais pour ne plus créer des variables ne comportant qu'une seule lettre. Si possible, tenter de donner à vos variables des noms explicites : des noms permettant de savoir au premier coup d'oeil ce qu'elles contiennent. 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) !

Remarque 4 : Python est sensible à la casse. Cela veut dire qu'il distingue les minuscules et les majuscules. Les variables toto et toTO désignent donc bien deux variables différentes. Pour ne pas se perdre dans les notations, on propose souvent d'utiliser l'une des conventions ci-dessous pour les variables composées de plusieurs mots :

  • Utiliser des underscores entre les mots
    • concentration_initiale
    • vitesse_voiture
    • debit_entree
  • Utiliser une majuscule pour séparer les mots
    • concentrationInitiale
    • vitesseVoiture
    • debitEntree

Remarque 5 : Comme l'affectation est importante puisqu'elle modifie l'ID associé à la variable, elles apparaissents en gras dans les codes de ce site.

4 - Quelques exercices

✎ 11° 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 = 10 >>> b = 2 * a >>> b

✎ 12° 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 = 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 = 10 >>> b = a >>> b = b + 1 >>> 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.

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

✎ 15° 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

✎ 16° 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

Nous avons réussi à bien formaliser les choses en utilisant la console interactive. Mais nous ne faisons que taper des instructions qui s'exécutent immédiatement.

Nous avons vu comment stocker des informations dans des variables.

Il nous reste à voir comment stocker des instructions : créer un programme. De cette façon, nous n'aurons pas à taper les instructions. Elles seront enregistrées en mémoire.

Activité publiée le 28 08 2019
Dernière modification : 26 10 2020
Auteur : ows. h.