SunuLab
Notre savoir
CoursDébutant11 min de lecture

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.

Le if le plus simple
python
age = 20
if age >= 18:
print("Tu es majeur")
print("Fin du programme")
Résultat : Tu es majeur 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.

Un décalage change le sens

Ces deux programmes ne diffèrent que par l'indentation d'une seule ligne.

python
note = 5
if note >= 10:
print("Reçu")
print("Bravo !")
# ---
if note >= 10:
print("Reçu")
print("Bravo !")
Résultat : 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.

if / else
python
note = 8
if note >= 10:
print("Reçu")
else:
print("Ajourné")
Résultat : 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.

Une cascade de elif
python
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")
Résultat : 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.

Construis ta cascade
Chargement de l'éditeur Python…

§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.

Imbrication contre condition composée
python
age = 17
a_permis = False
# Imbriqué
if age >= 18:
if a_permis:
print("Peut conduire")
# Équivalent, plus lisible
if 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.

Un programme qui se défend

L'entrée est déjà préparée. Change-la pour tester les différents cas.

Chargement de l'éditeur Python…

À 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.
Mots-clésifelifelseconditionindentationblocimbrication