Livre_silo 30 août 2013 16:32 Page 92
¨
©
¨
©
¨
©
¨
©
C o p y r i g h t E y r o l l e s
92
Informatique pour tous
4.2.4 Tests imbriqués
Comme on a pu le voir dans la section sur l’indentation, il est possible de réaliser une
instruction conditionnelle dans une instruction conditionnelle. On parle alors de tests imbriqués.
Lorsque les tests imbriqués ne servent qu’à séparer une situation en plus de deux cas de
figure, l’indentation obligatoire en Python peut rendre difficile la compréhension du programme.
Par exemple, le programme suivant exécute trois instructions différentes suivant la valeur
de x % 3 :
if x % 3 == 0:
x = x + 1
else:
if x % 3 == 1:
x = x - 1
else:
x = 2 * x
Il n’y pas de raison pour que l’instruction x = x - 1 soit plus imbriquée que l’instruction
x = x + 1. En effet, elle correspond juste au cas où x % 3 vaut 1. Il est possible de mettre
toutes ces instructions au même niveau en contractant le else et le if qui le suit : on utilise
le mot-clé elif. Ainsi, le programme précédent devient :
if x % 3 == 0:
x = x + 1
elif x % 3 == 1:
x = x - 1
else:
x = 2 * x
Cette fois, les trois instructions sont au même niveau.
SAVOIR-FAIRE Écrire des instructions conditionnelles avec alternatives,
éventuellement imbriquées
1 On identifie les cas qui vont demander un traitement différent.
2 S’il n’y a que deux cas, on écrit une condition booléenne permettant de les distinguer et on construit l’instruction if…else avec cette condition.
3 S’il y a plus de deux cas, écrire des conditions booléennes traduisant chacun de
ces cas. Idéalement, ces conditions sont mutuellement exclusives et la dernière
peut donc être ignorée puisqu’elle est équivalente à la négation de toutes les autres.
Construire l’instruction if…elif…else avec ces conditions.
4 Remplir les blocs d’instructions correspondant à chacun des cas en n’oubliant pas
de respecter l’indentation. Si le cas du else ne contient aucune instruction, on peut
l’omettre complètement.
¯
¨
©
¨
©
¨
©
¨
©
C o p y r i g h t E y r o l l e s
92
Informatique pour tous
4.2.4 Tests imbriqués
Comme on a pu le voir dans la section sur l’indentation, il est possible de réaliser une
instruction conditionnelle dans une instruction conditionnelle. On parle alors de tests imbriqués.
Lorsque les tests imbriqués ne servent qu’à séparer une situation en plus de deux cas de
figure, l’indentation obligatoire en Python peut rendre difficile la compréhension du programme.
Par exemple, le programme suivant exécute trois instructions différentes suivant la valeur
de x % 3 :
if x % 3 == 0:
x = x + 1
else:
if x % 3 == 1:
x = x - 1
else:
x = 2 * x
Il n’y pas de raison pour que l’instruction x = x - 1 soit plus imbriquée que l’instruction
x = x + 1. En effet, elle correspond juste au cas où x % 3 vaut 1. Il est possible de mettre
toutes ces instructions au même niveau en contractant le else et le if qui le suit : on utilise
le mot-clé elif. Ainsi, le programme précédent devient :
if x % 3 == 0:
x = x + 1
elif x % 3 == 1:
x = x - 1
else:
x = 2 * x
Cette fois, les trois instructions sont au même niveau.
SAVOIR-FAIRE Écrire des instructions conditionnelles avec alternatives,
éventuellement imbriquées
1 On identifie les cas qui vont demander un traitement différent.
2 S’il n’y a que deux cas, on écrit une condition booléenne permettant de les distinguer et on construit l’instruction if…else avec cette condition.
3 S’il y a plus de deux cas, écrire des conditions booléennes traduisant chacun de
ces cas. Idéalement, ces conditions sont mutuellement exclusives et la dernière
peut donc être ignorée puisqu’elle est équivalente à la négation de toutes les autres.
Construire l’instruction if…elif…else avec ces conditions.
4 Remplir les blocs d’instructions correspondant à chacun des cas en n’oubliant pas
de respecter l’indentation. Si le cas du else ne contient aucune instruction, on peut
l’omettre complètement.
¯
