Instructions conditionnelles
Introduction
Jusqu'ici, vos programmes exécutaient toutes les lignes, du début à la fin, sans choisir. Mais souvent, on veut qu'un programme se comporte différemment selon les circonstances : afficher « bienvenue » si la personne est majeure et « refus » sinon, indiquer « il fait froid » si la température descend sous 5 °C, etc.
Pour cela, Python possède les instructions conditionnelles : if, elif,
else. Elles permettent au programme de prendre une décision au moment de
son exécution.
La condition, ce qui est vrai ou faux
Une condition est une expression qui s'évalue à True (vrai) ou à False
(faux). On la construit le plus souvent en comparant deux valeurs avec un
opérateur de comparaison :
| Opérateur | Signification | Exemple | Évaluation |
|---|---|---|---|
== | est égal à | 3 == 3 | True |
!= | est différent de | 3 != 5 | True |
< | est strictement inférieur à | 3 < 5 | True |
> | est strictement supérieur à | 3 > 5 | False |
<= | est inférieur ou égal à | 3 <= 3 | True |
>= | est supérieur ou égal à | 5 >= 3 | True |
==. Avec un seul signe
=, on affecte une valeur. C'est l'erreur de débutant la plus fréquente.L'instruction if — une seule branche
La forme la plus simple :
age = 18
if age >= 18:
print("Vous êtes majeur")
Décodage ligne par ligne :
- ligne 1 : la variable
agereçoit la valeur 18 ; - ligne 3 : Python évalue
age >= 18. C'estTrue, donc il exécute le bloc en dessous (indenté de 4 espaces) ; - ligne 4 : affichage de « Vous êtes majeur ».
Si on remplace age = 18 par age = 15, la condition age >= 18 vaut
False, et le print n'est jamais exécuté. Le programme passe à la
suite, comme si la ligne 4 n'existait pas.
if est
décalé vers la droite (par convention, 4 espaces). Sans indentation, Python
refuse d'exécuter le programme.Qu'affiche : age = 16 ; if age >= 18: print('OK') ?
if … else … — deux chemins
Que se passe-t-il si on veut traiter aussi le cas où la condition est fausse ?
On ajoute un else :
age = 15
if age >= 18:
print("Vous êtes majeur")
else:
print("Vous êtes mineur")
Avec age = 15, Python exécute uniquement le bloc else :
Vous êtes mineur
Avec age = 20, ce serait uniquement le bloc if. Exactement un des
deux blocs est exécuté à chaque passage — jamais les deux, jamais aucun.
if … elif … else … — plusieurs chemins
Quand il y a plus de deux situations possibles, on enchaîne avec un ou
plusieurs elif (contraction de else if) :
note = 13
if note >= 16:
print("Très bien")
elif note >= 12:
print("Bien")
elif note >= 10:
print("Assez bien")
else:
print("À retravailler")
Python teste les conditions dans l'ordre, de haut en bas, et s'arrête
à la première qui est vraie. Pour note = 13 :
note >= 16? Non.note >= 12? Oui → affiche"Bien"et sort de la structure.- Les conditions
elifetelsesuivants sont ignorés.
note = 18, c'est la première branche qui se déclenche (>= 16) et
les autres sont sautées — même si note >= 12 est aussi vrai. Première
vraie gagne, fin de l'histoire.Avec note = 11, qu'affiche le programme ci-dessus ?
Visualiser un if complet
Le schéma logique d'une instruction if/elif/else :
Exemple complet avec snippet
Un mini-programme de catégorisation de température :
Modifiez la valeur de temperature pour observer quelle branche se déclenche.
Essayez -5, 10, 22, 30.
Pièges courants
=au lieu de==dans la condition → erreur de syntaxe. La machine vous le dira tout de suite ; chez l'humain, c'est une habitude à prendre.- Oublier les
:à la fin de la ligneifouelse→ erreur de syntaxe. - Pas d'indentation ou indentation incohérente du bloc → erreur ou comportement inattendu. Toujours 4 espaces, jamais des tabulations mélangées.
- Confondre
elifetelse.elifteste une nouvelle condition ;elseattrape « tout le reste » sans condition.
Pour aller plus loin
On peut combiner plusieurs conditions avec and (et) et or (ou) :
age = 17
permis = False
if age >= 18 and permis:
print("Peut conduire seul")
else:
print("Pas encore !")
and exige que les deux conditions soient vraies. or se contente
qu'au moins une soit vraie. Ce sera approfondi en NSI.