1.4 Instruction conditionnelle if⚓︎
L'instruction conditionnelle if
permet de soumettre l'exécution d'instructions à une condition donnée.
Cette condition sera une expression booléenne, comme pour la boucle while
.
1. Exemples fondateurs⚓︎
Dans les exemples ci-dessous, changez la valeur affectée à la variable age
afin d'observer les modifications de comportement du programme.
Exemple fondateur n°1
L'exemple minimal ci-dessous ne contient que le mot-clé if
.
1 2 3 |
|
Exemple fondateur n°2
La structure qu'on rencontrera le plus souvent est la structure if ... else ...
1 2 3 4 5 |
|
Syntaxe générale
if expression booléenne:
*instructions à effectuer si l'expression est vraie*
else:
*instructions à effectuer si l'expression est fausse*
2. L'évaluation de la condition⚓︎
Comme pour la boucle while
, on dit que l'expression qui suit le if
est évaluée par Python lors de l'exécution du programme.
Cette évaluation renvoie un booléen, True
ou False
.
Les symboles de comparaison (ou d'appartenance) permettant d'écrire une condition sont :
Opérateurs de comparaison
Opérateur | Signification |
---|---|
== |
est égal à |
!= |
est différent de |
< |
inférieur à |
> |
supérieur à |
<= |
inférieur ou égal à |
>= |
supérieur ou égal à |
in |
appartient à |
not in |
n'appartient pas à |
Exemples
>>> a = 2
>>> a == 3
False
>>> a == 2
True
>>> a != 1
True
>>> a > 2
False
>>> a >= 2
True
>>> a <= 2
True
>>> a <= 5
True
>>> 'e' in 'abracadabra'
False
>>> 'b' in 'abracadabra'
True
>>> 'A' not in 'abracadabra'
True
>>> not True
False
Comme nous le verrons dans le cours sur les booléens, ces conditions peuvent être combinées avec (par exemple) les mots-clés and
ou or
:
>>> b = 20
>>> b > 15 and b < 30
True
>>> b > 2000 or b < 30
True
Exercice 1
Compter le nombre de voyelles de la phrase 'cet exercice est prodigieusement ennuyeux'
1 2 |
|
Correction
1 2 3 4 5 6 7 8 9 10 |
|
3. Un test très fréquent : le test de divisibilité⚓︎
Exemple fondateur n°3
Pour tester si un nombre n
est divisible par un nombre d
, on teste si le reste de la division euclidienne de n
par d
est égal à 0 :
n = 17
if n % 2 == 0:
print(n, "est un nombre pair")
else:
print(n, "est un nombre impair")
Exercice 2
Afficher la liste de tous les nombres entre 1 et 100 qui sont divisibles à la fois par 2 et par 7.
Correction
1 2 3 |
|
4. Les cas multiples : utilisation de elif
⚓︎
Dans les situations où l'on veut effectuer des instructions différentes selon les différentes valeurs prises par une variable, on peut imbriquer les instructions if
... else
.
Observer par exemple le code ci-dessous :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
Mais cela est vite long et peu lisible, et les différents niveaux d'indentation peuvent devenir piégeux.
Il existe alors une instruction qui contracte else
et if
: elif
(sinon si).
Ce code devient alors
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
4. Récréation : à vous d'obéir !⚓︎
Le site https://compute-it.toxicode.fr/ vous demande d'exécuter mentalement les instructions affichées, à l'aide des touches directionnelles de votre clavier. Attention, ce site est très addictif !