Les conditions
Faire prendre des décisions à ton programme avec if, elif et else — et comprendre l'indentation
§1.Jusqu'ici, tes programmes n'avaient pas le choix
Ils exécutaient toutes les lignes, dans l'ordre, sans exception. Avec les conditions, ton programme peut enfin réagir : afficher un message différent selon la note, refuser une saisie invalide, traiter les cas particuliers.
L'idée est simple : « SI cette condition est vraie, ALORS fais ceci ». Le mot-clé est if, qui veut dire « si » en anglais.
age = 20 if age >= 18: print("Tu es majeur") print("Fin du programme")Trois choses à remarquer : la condition suit le mot if, la ligne se termine par DEUX-POINTS, et la ligne suivante est DÉCALÉE vers la droite. Ces trois éléments sont obligatoires.
§3.L'anatomie d'un if
- La condition
- N'importe quelle expression qui vaut True ou False : une comparaison, une combinaison avec and/or, ou un booléen stocké dans une variable.
- Les deux-points
- Ils annoncent : « un bloc de code arrive ». Les oublier est l'une des erreurs de syntaxe les plus fréquentes.
- L'indentation
- Le décalage vers la droite. C'est lui, et lui seul, qui dit à Python quelles lignes font partie du if. Quatre espaces, par convention.
§4.L'indentation n'est pas de la décoration
Dans la plupart des langages, on délimite un bloc avec des accolades, et l'indentation ne sert qu'à faire joli. En Python, c'est l'inverse : l'indentation EST la structure. Il n'y a pas d'accolades.
C'est une décision de conception délibérée. Elle force tout le monde à écrire du code correctement aligné, donc lisible. Mais elle a une conséquence : un décalage mal placé change le SENS de ton programme, ou provoque une IndentationError.
Utilise quatre espaces par niveau, et ne mélange jamais espaces et tabulations dans un même fichier — c'est la recette garantie d'une erreur incompréhensible.
Ces deux programmes ne diffèrent que par l'indentation d'une seule ligne.
note = 5 if note >= 10: print("Reçu") print("Bravo !") # --- if note >= 10: print("Reçu")print("Bravo !")Dans le premier, les deux print appartiennent au if : avec note = 5, rien ne s'affiche. Dans le second, seul « Reçu » est conditionné ; « Bravo ! » est en dehors du bloc et s'affiche toujours — y compris pour un élève qui a échoué. Voilà pourquoi l'indentation se surveille.
§6.else : le cas contraire
else se traduit par « sinon ». Le bloc qui le suit s'exécute quand la condition du if est fausse. Un else n'a jamais de condition à lui : il ramasse tout le reste.
note = 8 if note >= 10: print("Reçu")else: print("Ajourné")Exactement un des deux blocs s'exécute, jamais les deux, jamais aucun.
§8.elif : plus de deux cas
Quand il y a trois issues ou plus, on enchaîne avec elif — contraction de « else if », c'est-à-dire « sinon si ».
Python teste les conditions DANS L'ORDRE et s'arrête à la première qui est vraie. Les suivantes ne sont même pas évaluées. Cette propriété simplifie beaucoup l'écriture : dès qu'on atteint un elif, on sait que toutes les conditions précédentes étaient fausses.
note = 13 if note < 8: print("Insuffisant")elif note < 10: print("Passable")elif note < 12: print("Assez bien")elif note < 14: print("Bien")else: print("Très bien")Remarque qu'on n'écrit pas 12 <= note < 14 dans le quatrième test. Inutile : si Python y arrive, c'est que note < 12 était déjà faux, donc note vaut au moins 12. Profiter de cet ordre rend le code plus court ET plus lisible.
§12.Imbriquer des conditions
Un if peut en contenir un autre. Chaque niveau ajoute quatre espaces d'indentation.
C'est utile, mais à consommer avec modération : au-delà de deux ou trois niveaux, le code devient difficile à suivre. Souvent, une condition composée avec and remplace avantageusement une imbrication.
age = 17a_permis = False # Imbriquéif age >= 18: if a_permis: print("Peut conduire") # Équivalent, plus lisibleif age >= 18 and a_permis: print("Peut conduire")Les deux versions font la même chose. La seconde se lit d'un trait. Réserve l'imbrication aux cas où les deux niveaux ont des else différents.
§14.Valider une saisie
Le premier usage vraiment utile des conditions, c'est de se protéger contre des données absurdes. Un programme qui accepte une note de 47 sur 20 sans broncher n'est pas un bon programme.
L'entrée est déjà préparée. Change-la pour tester les différents cas.
À retenir
- if condition: puis un bloc INDENTÉ de quatre espaces — les deux-points et l'indentation sont obligatoires.
- En Python l'indentation n'est pas cosmétique : elle définit la structure du programme.
- else ramasse le cas contraire et ne porte jamais de condition.
- elif enchaîne les cas ; Python s'arrête à la première condition vraie, donc l'ORDRE est déterminant.
- Une condition composée avec and est souvent plus lisible qu'une imbrication.
- Valide toujours les saisies : teste les cas limites, pas seulement le cas normal.
- 0, "", [] et None sont considérés comme faux ; if liste: teste qu'elle n'est pas vide.