Vous êtes sur la page 1sur 9

Chapitre 2 : Variables, opérations de base et entrées/sorties en Python

En informatique, tout problème de développement a de nombreuses solutions, l’essentiel étant


que les choix que l’on fait soient guidés par la volonté de produire un code propre et robuste à
travers une bonne conception. Eh bien cette diversité fait que l’on classe les manières de
programmer en différentes catégories, appelées paradigmes. Les paradigmes les plus courants
sont : le paradigme impératif, paradigme fonctionnel ou procédural et la programmation
orientée objet (POO).

Le langage Python est langage orienté objet, c’est-à-dire qu’il permet de créer des objets, en
définissant des attributs et des fonctions qui leur sont propres. Cependant, certains objets sont
prédéfinis dans le langage. Nous allons voir les plus importants.

2.1. Définition d’une variable


Une variable est une zone de la mémoire dans laquelle une valeur est stockée. Aux yeux du
programmeur, cette variable est définie par un nom, alors que pour l’ordinateur, il s’agit en fait
d’une adresse (i.e. une zone particulière de la mémoire). En Python, la déclaration d’une
variable et son initialisation (c’est-à-dire la première valeur que l’onva stocker dedans) se font
en même temps.
Exemple :
>>> x = 2
>>> x
2
Dans cet exemple, nous avons déclaré, puis initialisé la variable x avec la valeur 2. Notez bien
qu’en réalité, il s’est passé plusieurs choses :

- Python a deviné que la variable était un entier. On dit que Python est un langage au
typage dynamique.
- Python a alloué (i.e. réservé) l’espace en mémoire pour y accueillir un entier (chaque
type de variable prend plus ou moins d’espace en mémoire), et a fait en sorte qu’on
puisse retrouver la variable sous le nom x.
- Python a assigné la valeur 2 à la variable x.

Dans certains autres langages, il faut coder ces différentes étapes une par une (en C par
exemple). En Python, la simple instruction x = 2 a suffi à réaliser les 3 étapes en une fois !

Ensuite, l’interpréteur nous a permis de connaître le contenu de la variable juste en tapant son
nom.

Retenez ceci car c’est une spécificité de l’interpréteur Python, très pratique pour chasser les
erreurs (debugging) dans un programme. Par contre, la ligne d’un script Python qui contient
seulement le nom d’une variable (sans aucune autre indication) n’affichera pas la valeur de la
variable à l’écran (pour autant ceci reste valide et ne génèrera pas d’erreur).

Dernière chose, l’opérateur d’affectation = s’utilise dans un certain sens : par exemple x = 2
signifie qu’on attribue la valeur située à droite de l’opérateur = (2) à la variable située à gauche
(x).
Si on a x = y - 3, l’opération y - 3 est d’abord évaluée et ensuite le résultat de cette opération
est affecté à la variable x.

2.2. Les types de variables


Le type d’une variable correspond à la nature de celle-ci. Les trois types principaux dont nous
aurons besoin dans un premier temps sont les entiers (integer ou int), les réels (float) et les
chaînes de caractères (string ou str). Bien sûr, il existe de nombreux autres types (par exemple,
les nombres complexes), c’est d’ailleurs un des gros avantages de Python.

 Entiers
type : int
 Réels
type : float
exemples de valeurs : 4.0 ; 5.1 ; 1.23e-6
 Complexes
type : complex
exemples de valeurs : 3+4j ; 3+4j
 Booléens
type : bool
exemples de valeurs : True False

Une chaîne de caractères (string en anglais) est un objet de la classe (ou de type) str. Une chaîne
de caractères peut être définie de plusieurs façons :
>>> "je suis une chaine"
’je suis une chaine’
>>> ’je suis une chaine’
’je suis une chaine’
>>> ’pour prendre l\’apostrophe’
’pour prendre l’ apostrophe’
>>> "pour prendre l’apostrophe"
"pour prendre l’apostrophe"
>>> y = 3.14
>>> y
3.14
>>> a = "bonjour"
>>> a
'bonjour'
>>> b = 'salut'
>>> b
'salut'
Vous remarquez que Python reconnaît certains types de variable automatiquement (entier, réel).
Par contre, pour une chaîne de caractères, il faut l’entourer de guillemets (simples, doubles
guillemets successifs simples ou doubles) afin d’indiquer à Python le début et la fin de la chaîne.
2.3. Nommage des variables
Le nom des variables en Python peut-être constitué de lettres minuscules (a à z), de lettres
majuscules (A à Z), de nombres (0 à 9) ou du caractère souligné ( _ ). Néanmoins, un nom de
variable ne doit pas débuter ni par un chiffre, ni par _ et ne peut pas contenir de caractère
accentué. Il faut absolument éviter d’utiliser un mot “réservé” par Python comme nom de
variable (par exemple : print, range, for, from, etc.).
Python est sensible à la casse, ce qui signifie que les variables TesT, test ou TEST sont
différentes.
Enfin, vous ne pouvez pas utiliser d’espace dans un nom de variable.

2.4. Opérations
2.4.1. Opérations sur les types numériques

Les quatre opérations de base se font de manière simple sur les types numériques (nombres
entiers et réels) :
>>> x = 45
>>> x + 2
47
>>> y = 2.5
>>> x + y
47.5
>>> (x * 10) / y
180.0
Remarquez toutefois que si vous mélangez les types entiers et réels, le résultat est renvoyé
comme un réel (car ce type est plus général). Par ailleurs, l’utilisation de parenthèses permet de
gérer les priorités.
L’opérateur puissance utilise le symbole **. Pour obtenir le reste d’une division entière, on
utilise le symbole modulo % :
>>> 2**3
8
>>> 5 % 4
1
>>> 8 % 4
0
Les symboles +, -, *, /, ** et % sont appelés opérateurs, car ils permettent de faire des opérations
sur les variables.

2.4.2. Opérations sur les chaînes de caractères

Pour les chaînes de caractères, deux opérations sont possibles, l’addition et la multiplication :
>>> chaine = "Salut"
>>> chaine
'Salut'
>>> chaine + " Python"
'Salut Python'
>>> chaine * 3
'SalutSalutSalut'

L’opérateur d’addition + permet de concaténer (assembler) deux chaînes de caractères et


l’opérateur de multiplication * permet de dupliquer plusieurs fois une chaîne.

Attention : Vous voyez que les opérateurs + et * se comportent différemment selon s’il s’agit
d’entiers ou de chaînes de caractères : 2 + 2 est une addition, '2' + '2' est une concaténation. On
appelle ce comportement surcharge des opérateurs.

2.4.3. Opérations illicites

Attention à ne pas faire d’opération illicite car vous obtiendriez un message d’erreur :
>>> 'toto' + 2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only concatenate str (not "int") to str

Notez que Python donne le maximum d’information dans son message d’erreur. Dans
l’exemple précédent, il vous indique que vous ne pouvez pas mélanger des objets de type str
(string, donc des chaînes de caractères) avec des objets de type int (donc des entiers), ce qui est
assez logique.

2.5. La fonction type()


Si vous ne vous souvenez plus du type d’une variable, utilisez la fonction type() qui vous le
rappellera.
>>> x = 2
>>> type(x)
<class 'int'>
>>> y = 2.0
>>> type(y)
<class 'float'>
>>> z = '2'
>>> type(z)
<class 'str'>
Faites bien attention, car pour Python, la valeur 2 (nombre entier) est différente de 2.0 (nombre
réel), de même que 2 (nombre entier) est différent de '2' (chaîne de caractères).

2.6. Conversion de types


Dans tout langage de programmation, on est souvent amené à convertir les types, c’est-à-dire
passer d’un type numérique à une chaîne de caractères ou vice-versa. En Python, rien de plus
simple avec les fonctions int(), float() et str().Exemples :
>>> i = 3
>>> str(i)
'3'
>>> i = '456'
>>> int(i)
456
>>> float(i)
456.0
>>> i = '3.1416'
>>> float(i)
3.1416
On verra au chapitre sur les fichiers que ces conversions sont essentielles. En effet, lorsqu’on
lit ou écrit des nombres dans un fichier, ils sont considérés comme du texte.
Toute conversion d’une variable d’un type en un autre est appelé casting en anglais, il se peut
que vous croisiez ce terme si vous allez consulter d’autres ressources.

2.7. Note sur la division


Notez bien qu’en Python, la division de nombres entiers renvoie par défaut un nombre réel
(float) :
>>> x = 3 / 4
>>> x
0.75
>>> type(x)
<class 'float'>

2.8. Note sur le vocabulaire et la syntaxe


Nous avons vu dans ce chapitre la notion de variable qui est commune à tous les langages de
programmation. Toutefois, Python est un langage dit Orienté Objet, il se peut que dans la suite
du cours nous employions ce mot objet pour désigner une variable. Par exemple variable de
type entier sera équivalent à un objet de type entier. Par ailleurs, nous avons rencontré plusieurs
fois des fonctions dans ce chapitre, avec type(x), int(x), float(x) et str(x). Dans le chapitre 1
nous avons également vu la fonction print(). On reconnait qu’il s’agit d’une fonction au nom -
par exemple type - suivi de parenthèses (). En Python la syntaxe générale est fonction(). La
variable x entre les parenthèses est appelé argument que l’on passe à la fonction. Dans type(2)
c’est l’entier 2 qui est l’argument passé à la fonction. Pour l’instant on retiendra qu’une fonction
est une sorte de boite à qui on passe un argument et qui renvoie un résultat ou plus généralement
un objet. Par exemple, la fonction type() renvoie le type de la variable qu’on lui a passé en
argument.

2.9. Affichage : la fonction print()


La fonction print() permet d’afficher du texte. L’utilisation la plus simple que l’on puisse en
faire est de passer en argument la variable à afficher : print(variable). Nous avons déjà vu au
chapitre 1 la fonction print() qui permet d’afficher une chaîne de caractères. Elle permet en
plus d’afficher le contenu d’une ou plusieurs variables :
>>> x = 32
>>> nom = 'John'
>>> print (nom , ' a ' , x , ' ans')
John a 32 ans
>>> print("Nom_"*2)
Nom_Nom
Python a donc écrit la phrase en remplaçant les variables x et nom par leur contenu. Vous
pouvez noter également que pour écrire plusieurs blocs de texte sur une seule ligne, nous avons
utilisé le séparateur virgule (,) avec la fonction print(). En regardant de plus près, vous vous
aperçevrez que Python a automatiquement ajouté un espace à chaque fois que l’on utilisait le
séparateur , . Par conséquent, si vous voulez mettre un seul espace entre chaque bloc, vous
pouvez retirer ceux de vos chaînes de caractères :
>>> print(nom , 'a' , x , 'ans')
John a 32 ans
Pour imprimer deux chaînes de caractères l’une à côté de l’autre sans espace, vous devrez les
concaténer :
>>> ani1 = 'chat'
>>> ani2 = 'souris'
>>> print(ani1, ani2)
chat souris
>>> print(ani1 + ani2)
chatsouris

2.9.1. Écriture formatée

La méthode format() permet une meilleure organisation de l’affichage des variables. Si on


reprend l’exemple précédent :
>>> x = 32
>>> nom = 'John'
>>> print('{} a {} ans'.format(nom, x))
John a 32 ans
 Dans la chaine de caractères, les accolades vides {} précisent l’endroit où le contenu de
la variable doit être inséré.
 Juste après la chaine de caractères, l’instruction .format(nom, x) indique la liste des
variables à insérer, d’abord la variable nom puis la variable x. Ainsi, la méthode
.format() agit sur la chaine de caractères à laquelle elle est attachée par le. .

Remarque : il est possible d’indiquer entre les accolades {} dans quel ordre afficher les
variables, avec 0 pour la variable à afficher en premier, 1 pour la variable à afficher en second,
etc. (attention, Python commence à compter à 0). Cela permet de modifier l’ordre dans lequel
sont affichées les variables.
>>> x = 32
>>> nom = 'John'
>>> print('{0} a {1} ans'.format(nom, x))
John a 32 ans
>>> print('{1} a {0} ans'.format(nom, x))
32 a John ans

2.9.2. Écriture scientifique

Pour les nombres très grands ou très petits, l'écriture formatée permet d'afficher un nombre en
notation scientifique (sous forme de puissance de 10) avec la lettre e :
>>> print(f"{1_000_000_000:e}")
1.000000e+09
>>> print(f"{0.000_000_001:e}")
1.000000e-09
Il est également possible de définir le nombre de chiffres après la virgule. Dans l'exemple ci-
dessous, on affiche un nombre avec aucun, 3 et 6 chiffres après la virgule :
>>> number = 6.022_140_76e23
>>> print(f"{number:.0e}")
6e+23
>>> print(f"{number:.3e}")
6.022e+23
>>> print(f"number:.6e}")
6.022141e+23

2.10. Entrée au clavier : La fonction input()


Dans un programme, il est très pratique de pouvoir demander à l’utilisateur de saisir une chaîne
de caractères. La fonction input() permet de lire (récupère ce qu'a tapé l'utilisateur sur le clavier)
une ligne écrite et de la stocker dans une variable. Cette instruction va renvoyer une chaîne de
caractères. Ainsi, si l’utilisateur tape l’entier 25, le résultat initial est ’25’. La saisie de la ligne
est interrompue avec la touche entrée. Elle accepte un argument optionnel qui permet d’afficher
une chaine de caractères (par exemple, pour donner des informations) :

Exemple : A interpréter dans un fichier Python sur l’invite de commande


# -*-coding:Utf-8 -*
# Acquisition des données
nom = input("Quel est votre nom ? ")
age = input("Veuillez donner votre âge : ")
# Restitution des données
print(‘L\'utilisateur est', nom ,'et il a', âge,'ans')

 La ligne # -*-coding:Utf-8 -* Permet de gérer le codage des caractères


spéciaux.
 On enregistre les réponses de l’utilisateur dans deux variables nommées nom et âge puis
on affichage la chaîne de caractères.

2.11. Programme Pause en Python


La mise en pause de l’exécution du programme ou de l’application est utilisée dans différents
scénarios, comme lorsqu’un programme doit entrer l’utilisateur. Nous pouvons également avoir
besoin de mettre un programme en pause pendant quelques secondes pour permettre à
l’utilisateur de lire un message ou une instruction importante avant que le programme ne
continue. La mise en pause d’un programme peut également être utile lorsque nous devons nous
assurer que l’utilisateur lit l’instruction avant de choisir les actions qu’il souhaite que le
programme effectue.
Sur Python, nous pouvons mettre le programme en pause pour une durée spécifique ou pour
une entrée en utilisant :

 La méthode time.sleep()
 La fonction input()
 La méthode os.system("pause")

2.11.1. Mettre en pause un programme en Python en utilisant la méthode time.sleep()

La méthode time.sleep (secs) suspend l’exécution du fil donné pendant le nombre de secondes
fourni comme secs. Par conséquent, si nous avons besoin de suspendre l’exécution du
programme, nous pouvons le faire en fournissant la durée en secondes à la méthode time.sleep().
L’exemple de code ci-dessous montre comment utiliser la méthode time.sleep() pour mettre en
pause un programme Python.
import time
time_duration = 3.5
time.sleep(time_duration)

2.11.2. Mettre en pause un programme en Python en utilisant la fonction input()

Si nous voulons mettre un programme en pause pour obtenir une entrée de l’utilisateur, nous
pouvons le faire en utilisant la fonction input() comme vu précédemment. Nous pouvons
également utiliser cette méthode pour mettre le programme en pause jusqu’à ce que la
touche Enter soit enfoncée. L’exemple de code ci-dessous montrent comment utiliser les
input() pour ce faire.
input("Please press the Enter key to proceed")

2.11.3. Pause d’un programme en Python en utilisant la méthode os.system("pause")

Un double clic sur notre tout premier programme au chapitre 1 ( print("Mon premier
programme" ) enregistré sous un fichier d’extension .py va ouvrir la console de commande et
la refermer aussi vite, ne nous permettant pas de voir notre message. La
méthode os.system("pause") met en pause l’exécution du programme et nous demande
d’appuyer sur une touche pour continuer.

L’exemple de code ci-dessous montre comment utiliser la méthode os.system("pause") pour


mettre en pause un programme Python.
import os
os.system("pause")

NB: Cette méthode est Malheureusement déconseillée et ne fonctionne que sur Windows .Il ne
fonctionne sur aucun autre système d’exploitation.
2.12. Exercices :
1) En utilisant l’écriture formatée, affichez en une seule ligne les variables a, b et c dont
les valeurs sont respectivement "salut", 102 et 10.318. Exécuter ce programme en
double cliquant sur le fichier d’extension .py que vous allez créer.
2) Écrivez un programme qui demande le nom et prénom à d’un utilisateur, et qui l’affiche
ensuite à l’écran avec un message commençant par : L'utilisateur est….
 Rajouter le code permettant de stocker l’argent contenu (en franc cfa) dans la poche
gauche, puis l’argent contenu dans la poche droite
 Rajouter le code pour afficher l’argent total que porte la personne.
3) Écrire un programme qui, à partir de la saisie d'un rayon et d'une hauteur (en m), calcule
le volume d'un cône droit (en m3)

Vous aimerez peut-être aussi