3.3. Les structures conditionnelles¶
En informatique, pour que l’ordinateur puisse prendre des décisions, nous sommes amenés à procéder à des tests.
En Python, nous utilisons pour cela les instructions if
(« si »), else
(« sinon ») et elif
(« sinon si »).
3.3.1. Si¶
La syntaxe de la structure conditionnelle if
est la suivante.
if test_expression:
instructions
Cette structure commence par le mot réservé if
, l’expression de test ou condition, et le symbole :
.
Puis suivent les instructions (bloc if
) qui devront s’exécuter uniquement dans le cas où l’expression de test est vérifiée.
Ces instructions doivent être indentées par rapport au if
(en principe en ajoutant 4 espaces).
La figure 3.1 ci-dessous présente sous forme d’organigramme le schéma d’exécution de la structure conditionnelle if
.
3.3.2. Sinon¶
Le mot réservé else
signifie « sinon ».
Comme son nom l’indique, il permet d’exécuter un bloc d’instructions dans le cas où la condition associée au if
est fausse.
La syntaxe de la structure conditionnelle if... else
est la suivante.
if test_expression:
instructions
else:
instructions
Le mot réservé else
se place après le bloc d’instructions du if
, au même niveau d’indentation que le if
.
On ajoute le symbole :
après le else
, que l’on fait suivre, comme pour le if
, du bloc d’instructions correctement indenté.
La figure 3.2 ci-dessous présente sous forme d’organigramme le schéma d’exécution de la structure conditionnelle if... else
.
À titre d’exemple, écrivons un programme qui teste si un nombre entré par l’utilisateur est pair ou impair.
n = int(input("Entrez un nombre : ")) # conversion de la chaîne de caractère en entier nécessaire
if n % 2 == 0:
print(str(n) + " est pair")
else:
print(str(n) + " est impair")
L’exécution de ce programme pourra produire les résultats suivants.
Entrez un nombre : 5
5 est impair
Entrez un nombre : -6
-6 est pair
Dans cet exemple, on commence par créer une variable n
contenant une valeur entière entrée par l’utilisateur.
Puis vient la structure conditionnelle if... else
avec la condition « le reste de la division entière de n
par 2 est-il nul ? », ce qui correspond à tester si n
est un multiple de 2.
On spécifie ensuite les instructions à suivre si la condition est vraie, dans ce cas l’affichage d’un message indiquant que le nombre entré est pair.
Sinon, si la condition est fausse, on affiche que le nombre est impair.
L’organigramme du programme est représenté dans la figure 3.3 ci-dessous.
3.3.3. Sinon… si¶
Le mot réservé elif
, contraction de else
et if
, signifie « sinon si ».
Il permet d’ajouter à la structure une nouvelle condition si celle du if
est fausse, contrairement à else
qui n’implique aucune autre condition.
La syntaxe de elif
est identique à celle de if
.
if test_expression:
instructions
elif test_expression:
instructions
else:
instructions
La figure 3.4 ci-dessous présente sous forme d’organigramme le schéma d’exécution de la structure conditionnelle if... else... elif
.
Note
On peut ajouter l’instruction elif
autant de fois que nécessaire, contrairement à else
qui ne peut figurer qu’à la fin de la structure conditionnelle.
En guise d’illustration, modifions le programme précédent pour tester si le nombre entré par l’utilisateur est positif, négatif ou nul.
n = int(input("Entrez un nombre : "))
if x > 0:
print(str(n) + " est positif")
elif x < 0:
print(str(n) + " est négatif")
else:
print(str(n) + " est nul")
L’exécution de ce programme pourra produire les résultats suivants.
Entrez un nombre : 8
8 est positif
Entrez un nombre : 0
0 est nul
Entrez un nombre : -42
-42 est négatif