4 - Variables - Cours
4 - Variables - Cours
4 - Variables - Cours
Informatique
Cours
S. GLOBEZ 1
MPSI 2022-2023
S. GLOBEZ 2
MPSI 2022-2023
Les variables
Taper 10+10, c’est bien, mais on le fera très rarement dans un programme. Nous allons manipuler des
variables dans lesquelles sont stockées des valeurs.
Il est fortement recommandé de choisir des noms correspondant à ce que contient la variable pour
plusieurs raisons :
- De base, vous serez évaluées en partie à l’écrit, vos programmes doivent être compréhensibles
- D’une manière générale, vos codes doivent être lisibles pour d’autres personnes, il faut donc
qu’ils soient facilement compréhensibles
- Lorsque vous travaillerez sur de gros programmes, vous oublierez vite ce que vous avez fait
quelques semaines avant et si vous ne respectez pas ce conseil, vous pourriez avoir besoin de
repasser beaucoup de temps à comprendre ce que vous avez fait
Cela permettra d’utiliser la « n » dans un autre contexte car vous n’auriez pas pu l’utiliser 2 fois…
Attention, majuscules et minuscules sont différents dans python. Si la variable 𝑎 existe, 𝐴 n’existe pas
et peut avoir une valeur différente.
Vous pourrez remarque que dès qu’une variable existe dans le Workspace, Pyzo
permet en tapant ses quelques premières lettres de l’écrire entièrement, c’est assez
pratique et ça évite souvent une faute de frappe pour les longs noms. Il suffit alors
de cliquer sur le nom de la variable ou d’appuyer sur la touche « Tabulation ».
Remarque : double cliquer quelque part sur le nom d’une variable permet de la sélectionner
S. GLOBEZ 3
MPSI 2022-2023
Attention, danger ! Il ne faut surtout pas utiliser de nom de fonctions python comme noms de
variables, prenons les exemples de input (fonction abordée un peu plus loin) et print
au lieu de
Ou encore :
au lieu de
Ce sont de grosses erreurs qui ont des conséquences importantes. Supposons avoir écrit ces deux
erreurs et avoir exécuté le code en question, puis appelons les fonctions input et print :
Il faut savoir qu’écrire mot() consiste à appeler une fonction mot (nous aborderons les fonctions plus
tard) en précisant qu’elle n’a pas d’argument (parenthèse vide). Ecrire mot(2) appelle la fonction mot
avec comme argument la valeur 2. Or, en écrivant les lignes d’erreurs print=2 et input=2, on a défini
des variables de type int dont les noms sont print et input. Pyzo nous informe dont que ces variables
de type int ne sont pas appelables (callable) car ce ne sont pas des fonctions, et c’est logique.
Il faut donc veiller à éviter d’appeler ses variables avec un nom de fonction native de Python, et souvent
mettre une majuscule le permet. Par exemple, la fonction « max » existe, alors créer un maximum en
écrivant « Max= » avec majuscule permet de ne pas écraser « max ».
Si vous écrasez une fonction,la solution consiste à supprimer ces variables qui ont le nom de
fonctions dans python avec la commande del :
Ce qui supprime les variables créées par erreur avec des noms de fonctions existantes dans python
pour pouvoir à nouveau les utiliser.
Attention donc à ne pas appeler des variables avec des noms de fonctions et à savoir utiliser del si
vous l’avez fait par erreur
Remarque : une autre solution consiste à fermer Pyzo, ce qui vide le « Workspace »
S. GLOBEZ 4
MPSI 2022-2023
Pour le moment, nous avons créé les variables a, b, c et quelques autres avec des noms plus grands.
C’est normal, la variable z n’étant pas définie, Python nous le dit : « name ‘z’ is not defined ».
En général, vous aurez cette erreur pour des fautes de frappe dans les noms de variable, ou pour une
majuscule intervertie avec une minuscule. Ex : Nb_Eleves - Nb_Eleve - Nb_eleve – nb_Eleve…
Un autre cas qui peut arriver, c’est un code qui contenait la création d’une variable « a=1 », qui a
ensuite disparue. Votre code fonctionne alors tant que la variable a est dans le Workspace. Mais si
vous fermez Pyzo, et que vous l’ouvrez à nouveau, la variable ayant disparue de votre code, il y aura
une erreur lorsque celui-ci fera appel à cette variable inexistante « b = a + 1 ».
Les deux types de variables qui nous intéresseront ici sont les types « integer » pour « entier » et
« floating » pour décimal. Les types de variables se créent automatiquement en fonction du nombre
entré.
Une opération entre un entier et un décimal donnera toujours un nombre décimal. Tapez dans la
console 𝑐 = 𝑎 + 𝑏 puis 𝑡𝑦𝑝𝑒(𝑐), vous verrez :
S. GLOBEZ 5
MPSI 2022-2023
Une chaîne de caractères est un mot composé de lettres. Il faut bien faire la différence entre une
variable 𝑧 et la lettre 𝑧, python ne les traite pas de la même manière.
Dans la console, si 𝑧 n’est pas une variable existante (ie n’est pas visible dans le Workspace), écrivez z
et tapez « Entrée », un message d’erreur dit :
Effectivement, la variable 𝑧 n’a pas été créée, et ne contient aucune donnée « à l’intérieur ».
Définissons la lettre 𝑧 dans la variable d : tapez 𝑑 = ’𝑧’ puis tapez 𝑡𝑦𝑝𝑒(𝑑), vous verrez que 𝑑 est un
« string » ou chaîne de caractères. La variable 𝑑 contient la lettre 𝑧.
Il est possible de regrouper deux chaînes de caractère avec le symbole « + », par exemple :
Attention, lorsque l’on utilise deux apostrophes pour créer une chaîne de caractères, il est évidemment
impossible d’utiliser cette même apostrophe dans la chaîne de caractère puisque celle-ci mettra fin à
ladite chaîne :
S. GLOBEZ 6
MPSI 2022-2023
- Utiliser l’anti slash (touches Alt+8) devant l’apostrophe qui doit rester du texte et non une
délimitation :
Si on demande une lettre au-delà de la taille du mot enregistré dans la variable, ici Nom, l’erreur
suivante apparaît :
Pyzo nous prévient que l’index 6 est hors de portée (out of range).
Il est possible de créer une chaîne de caractères contenant à la fois des mots et la valeur d’une variable.
Dans ce cas, il est obligatoire de dire à Python qu’il faut considérer la valeur de la variable comme une
chaîne de caractères (équivalent à un problème d’homogénéité) à l’aide de la commande str afin de
créer une chaîne de caractères comme somme de chaînes de caractères, qui sera affichée à l’aide de
la fonction print.
Soit a une variable qui vaut 10, pour créer la phrase « Il y a 10 pommes » telle que si a change, le 10
change, il faut écrire :
La commande 𝑠𝑡𝑟(𝑎) permet de transformer la valeur de a en un texte qui sera ajouté au reste du
texte.
S. GLOBEZ 7
MPSI 2022-2023
Il est possible de créer un texte « à trous » dans lequel seront ajoutées des valeurs précisées à la fin :
Nous aborderons plus précisément les variables booléennes dans la suite du cours, dans
l’algorithmique et les conditions.
Une variable booléenne peut être créée directement, par exemple « a = True », ou être le résultat
d’un test, par exemple :
S. GLOBEZ 8
MPSI 2022-2023
Lorsque l’exécution d’un code ne renvoie rien, en réalité, elle renvoie la variable « None ».
L’exécution 2+2 renvoie 4 alors que la commande a = 2 ne renvoie rien. En fait, cela renvoie None.
Il sera donc possible, plus tard, de renvoyer None si un code ne doit rien renvoyer, de tester le résultat
d’une commande en vérifiant s’il vaut None ou pas, de préremplir une matrice vide plutôt que pleine
de zéros…
On peut vérifier qu’une variable est d’un type donné, par exemple :
S. GLOBEZ 9
MPSI 2022-2023
Attention, quelle que soit la donnée entrée, le résultat d’un input est une chaîne de caractères (string).
Il suffit alors, dans la console, d’entrer le nombre associé puis validez avec la touche Entrée.
ATTENTION : la variable Nb_Eleves est une chaîne de caractères, on le voit à la présence des guillemets.
Pour pouvoir l’utiliser dans des calculs, il faut la convertir en flottant par exemple, il faut donc ajouter
obligatoirement :
Les erreurs classiquement rencontrées avec le « input » sont associées à l’oublie de transformation de
la chaîne de caractères en nombre :
Remarques :
S. GLOBEZ 10
MPSI 2022-2023
aa = a
a = b a,b = b,a
b = aa
Attention, si la solution de gauche fonctionne quel que soit le programme, celle de droite fonctionne
sous Python. Quid des autres …
S. GLOBEZ 11