Vous êtes sur la page 1sur 7

INGENIEUR Agro-Industrie, GÉOLOGIE &

Environnement (IAGE)

Chapitre 3 : Instructions Conditionnelles


Prérequis :

 Interpréteur Python installé et fonctionnel ;


 Connaissance sur la notion de variable en Python.
 Utilisation des fonctions en Python ;
 Maitrise des instructions de lecture et d’écriture en Python ;

Objectifs : A la fin de cette leçon chaque étudiant en classe de 1 ère année Agro doit
être capable de :

 Expliquer l’intérêt d’utiliser les instructions conditionnelles dans un algorithme


avec une performance de 100% ;
 Donner les contraintes sur une variable lue, vis-à-vis du problème posé avec
une performance de 100% ;
 Présenter avec une performance de 100% la structure alternative simple
algorithmique ;
 Présenter avec une performance de 100% la structure alternative complète
algorithmique ;
 Donner l’équivalent de la structure alternative simple en Python avec une
performance de 100% ;
 Donner l’équivalent de la structure alternative complète en Python avec une
performance de 100% ;
 Utiliser la structure alternative simple en Python avec une performance de
100% ;
 Utiliser la structure alternative complète en Python avec une performance de
100% ;
 Utiliser avec une performance de 100% les tests imbriqués en Python en
utilisant l’instruction elif avec une performance de 100% ;
 Résoudre des problèmes algorithmiques nécessitant l’utilisation de la structure
alternative en Python avec une performance de 100%.

Introduction
Dans le chapitre précédent, nous avons présenté l’équivalent en Python des
instructions de base algorithmique à savoir la lecture et l’affichage des données.
Cependant en fonction des problèmes à résoudre, les données lues doivent respecter
certaines contraintes. Par exemple, si nous souhaitons calculer l’aire d’un carré, il
nécessaire de vérifier que la valeur du côté du carré donnée par l’utilisateur est
supérieure à zéro. On a donc recours aux instructions conditionnelles. Dans ce

Chapitre 3 : Instructions conditionnelles Par Donald A.


1
VOUNDI
INGENIEUR Agro-Industrie, GÉOLOGIE &
Environnement (IAGE)

chapitre, nous allons d’abord nous remémorer l’utilisation des instructions


conditionnelle en algorithmique, ensuite nous présenterons l’équivalent de celles-ci en
Python.

I. Rappel Algorithmique
En Algorithmique, pour vérifier certaines contraintes sur l’ensemble des valeurs que
peut prendre une variable, on a recours à l’instruction alternative. On distingue en
algorithmique deux instructions alternatives :

 L’alternative simple ;
 L’alternative complète.

1. L’alternative simple
L’instruction alternative simple en algorithmique à la syntaxe suivante
Si (condition) Alors
Instruction i ;

Instruction i+k ;
FinSi

Dans cette écriture, condition peut être une valeur booléenne, ou une variable
booléenne, ou une expression donc l’évaluation retourne une valeur booléenne. En
général il s’agit d’une opération de comparaison. Lorsque la condition est vraie, les
instructions comprises entre les mots clés Si et FinSi sont exécutées.

Exemple :
Si (note = 20) Alors
Ecrire (‘Parfait’)
FinSi

2. Alternative Complète
L’alternative simple ne spécifie pas les actions à entreprendre lorsque la condition
testée au niveau de l’alternative simple n’est pas vraie. Il est nécessaire de compléter
l’instruction alternative simple afin de prendre en compte ce cas de figure : Il s’agit de
l’alternative complète. La syntaxe de l’alternative complète est la suivante :
Si (Condition) Alors
Instruction i

Instruction i+k
Sinon
Instruction j

Chapitre 3 : Instructions conditionnelles Par Donald A.


2
VOUNDI
INGENIEUR Agro-Industrie, GÉOLOGIE &
Environnement (IAGE)


Instruction j+l
Finsi

Lorsque la condition est vraie, les instructions entre les mots clés Si et Sinon sont
exécutées, dans le cas contraire, celles entre les mots clés Sinon et Finsi sont
exécutées.

Exemple.
Si (note > 12) Alors
Ecrire (‘Vous êtes promus en classe supérieure.’) ;
Sinon
Ecrire (‘Désolé, vous êtes recalés.’) ;
FinSi

Remarque : Il est possible d’imbriquer les instructions alternatives.

II. Les Instructions alternatives en Python


Dans tous les langages de programmation, il existe une équivalence de l’alternative
simple et complète.

1. L’alternative Simple
En Python, la syntaxe de l’alternative simple est la suivante :
if condition :
instruction i

Instruction i+k

Comme on peut le remarquer, le mot clé Si équivaut désormais à if (Si en langue


anglaise, n’est-ce pas trop facile ), le mot clé Alors est remplacé par les deux points
« : », comme avec les fonctions vues dans le chapitre précédent. Le bloc d’instruction
à exécuter lorsque la condition est vérifiée est déterminer grâce à l’indentation. Les
instructions à exécuter sont ainsi légèrement décalé vers la droite. Comme nous
l’avons signalé dans le chapitre précédent, l’indentation en Python fait partir du
langage, elle permet à l’interpréteur de déterminer le début et la fin d’un bloc
d’instruction.

Exemple : Ecrivons un petit programme permettant de calculer l’aire d’un carré. Le


côté du carré est une valeur donnée par l’utilisateur (Tous à nos éditeurs IDLE !).
cote = input("Donner la valeur du côté du carré... ")
cote = float(cote)

Chapitre 3 : Instructions conditionnelles Par Donald A.


3
VOUNDI
INGENIEUR Agro-Industrie, GÉOLOGIE &
Environnement (IAGE)

aire = 0 # Au cas où l’utilisateur saisie une valeur < 0


if(cote > 0): # Test si la valeur entrée par l’utilisateur est > 0
aire = cote*cote #Bloc d’instruction exécuté si la condition est vraie
print(f"L'aire du carré est : {aire}")

Recopier le suivant dans un éditeur IDLE, et amusez-vous avec  .

2. Alternative complète
Comme en algorithmique, en Python l’alternative simple est aussi limitée. La syntaxe
de l’alternative complète en Python est la suivante
if condition:
Instruction i

Instruction i+k
else:
Instruction j

Instruction j+l

Comme nous pouvons le remarquer, dans l’alternative complète le mot clé


algorithmique Sinon a été remplacé par else (Encore le mot sinon en langue
anglaise ), suivit des deux ponts « : » pour marquer le début du bloc d’instruction.
Fidèle à Python, Les instructions appartenant à ce bloc d’instruction sont indentées.

Exemple : Complétons l’exemple précédent, en informant l’utilisateur que la valeur


saisie doit être supérieure à 0.
cote = input("Donner la valeur du côté du carré... ")
cote = float(cote)
if(cote > 0):
aire = cote*cote
print(f"L'aire du carré est : {aire}")
else:
print(f"Le côté du carré {cote} ne peut être inférieure à 0 ou nul")

Comme vous le remarquer, nous pouvons désormais informer l’utilisateur que le côté
du carré ne peut être inférieur à 0.

Python offre un raccourci, lorsque nous avons à gérer des instructions alternatives
imbriquées multiples (Mais c’est encore quoi ça , les instructions alternatives
imbriqués !). Pour comprendre un peu cette notion d’imbrication, supposons que nous
souhaitons écrire un programme qui donne une appréciation d’une note >supérieure

Chapitre 3 : Instructions conditionnelles Par Donald A.


4
VOUNDI
INGENIEUR Agro-Industrie, GÉOLOGIE &
Environnement (IAGE)

ou égale à 10 d’un étudiant de la filière Agro (Le tableau suivant présente ces
appréciations)

Notes Appréciation
Note ꜫ [10 ; 12[ Passable
Note ꜫ [12 ; 14[ Assez Bien
Note ꜫ [14 ; 16[ Bien
Note ꜫ [16 ; 18[ Très bien
Note ꜫ [18 ; 20 [ Excellent
Note = 20 Parfait

Nous pouvons effectuer les fonctions suivantes (en Python)


def fonction1(note):
#Sans imbrication
if note >= 10 and note < 12 :
print(f"Votre {note} équivaut à la mention : Passable")
if note >= 12 and note < 14 :
print(f"Votre {note} équivaut à la mention : Assez Bien")
if note >= 14 and note < 16 :
print(f"Votre {note} équivaut à la mention : Bien")
if note >= 16 and note < 18 :
print(f"Votre {note} équivaut à la mention : Très Bien")
if note >= 18 and note < 20 :
print(f"Votre {note} équivaut à la mention : Excellent")
if note == 20 :
print(f"Votre {note} équivaut à la mention : Parfait")

def fonction2 (note):


# Une Imbrication de If-Else
if ((note >= 10) and (note < 12)) :
print(f"Votre {note} équivaut à la mention : Passable")
else:
if ((note >= 12) and (note < 14)) :
print(f"Votre {note} équivaut à la mention : Assez Bien")
else:
if ((note >= 14) and (note < 16)) :
print(f"Votre {note} équivaut à la mention : Bien")
else:
if ((note >= 16) and (note < 18)) :
print(f"Votre {note} équivaut à la mention : Très Bien")
else:
if ((note >= 18) and (note < 20)) :
print(f"Votre {note} équivaut à la mention : Excellent")

Chapitre 3 : Instructions conditionnelles Par Donald A.


5
VOUNDI
INGENIEUR Agro-Industrie, GÉOLOGIE &
Environnement (IAGE)

else:
print(f"Votre {note} équivaut à la mention : Parfait")

def fonction3 (note) :


# Plus simple avec le mot clé elif
if ((note >= 10) and (note < 12)) :
print(f"Votre {note} équivaut à la mention : Passable")
elif ((note >= 12) and (note < 14)) :
print(f"Votre {note} équivaut à la mention : Assez Bien")
elif ((note >= 14) and (note < 16)) :
print(f"Votre {note} équivaut à la mention : Bien")
elif ((note >= 16) and (note < 18)) :
print(f"Votre {note} équivaut à la mention : Très Bien")
elif ((note >= 18) and (note < 20)) :
print(f"Votre {note} équivaut à la mention : Excellent")
else :
print(f"Votre {note} équivaut à la mention : Parfait")

La première fonction (fonction1), n’utilise pas d’imbrication (mais ça fonctionne ),


l’exécution du programme donne effectivement le résultat escompté, mais cette
solution n’est pas optimale. Pourquoi ? pour la simple raison que tous les tests sont
effectués même si la mention a déjà été affiché. Supposons que dans l’interpréteur
nous saisissons l’instruction suivante :
>>> fonction1(11)
Votre 11 équivaut à la mention : Passable

Nous voyons bien que la bonne mention est affichée, elle correspond au premier test
(la première instruction if) mais cela n’empêche pas aux autres instructions d’être
également évaluées. On a ainsi des soucis de performance. Nous exécutons des
instructions qui consomme du temps processeur alors que le résultat a déjà été
déterminé.

La seconde fonction fonction2, essaie de résoudre ce problème via l’imbrication des


alternatives. Comme les tests sont imbriqués, un seul sera exécuté. Ceci permet donc
de ne pas exécuté d’autre instruction lorsque le test a été un succès. Pour comprendre
tout cela, supposons que nous saisissons l’instruction fonction2(13) dans un
interpréteur, on a le résultat suivant :
>>> fonction2(13)
Votre 13 équivaut à la mention : Assez Bien

Chapitre 3 : Instructions conditionnelles Par Donald A.


6
VOUNDI
INGENIEUR Agro-Industrie, GÉOLOGIE &
Environnement (IAGE)

Nous avons le bon résultat, mais lorsque le test est un succès les instructions qui
suivent ne sont pas exécutées. Pourquoi ? pour la simple raison qu’elles sont
contenues dans le bloc else du test. Utiliser les imbrications résous notre problème de
performance lié à la première fonction, mais on se rend compte que le code grandit
rapidement. Si nous avons un cas avec plus de 20 possibilités différentes, le code peut
devenir rapidement difficile à lire. Pour résoudre ce problème, Python propose
l’instruction elif, qui signifie littéralement (else if).

Comme on peut le voir au niveau de la fonction fonction3, l’instruction elif est sur le
même niveau d’indentation que le if initial, il se termine aussi par deux points « : ».
Cependant, entre le elif, et les deux points « : », se trouve une nouvelle condition. Ceci
permet de rendre le code plus lisible.

Remarque :

 Comme vous l’avez constaté dans le code des fonctions ci-dessus, il est
possible d’omettre les parenthèses pour l’écriture des conditions. Mais
l’utilisation des parenthèses est recommandée pour faciliter la lecture du code.
 Le mot clé and permet d’associer plusieurs prédicats, c’est le « ET », logique.
Il n’y a pas que le connecteur logique and, nous pouvons aussi utiliser le
connecteur logique or, pour le « OU » logique, et not pour la négation d’un
prédicat.

Chapitre 3 : Instructions conditionnelles Par Donald A.


7
VOUNDI

Vous aimerez peut-être aussi