Menu
Français

Python if, elif, else : instructions conditionnelles et expressions ternaires

Comment fonctionnent les instructions if, elif et else de Python — y compris les valeurs truthy, les conditions imbriquées et l'expression ternaire.

Une décision, en forme d'anglais

if est le premier outil que la plupart des programmes utilisent. Il laisse ton code prendre un chemin quand une condition est vraie et un chemin différent quand elle ne l'est pas. Python l'exprime directement :

main.py
Output
Click Run to see the output here.

Deux lignes, une décision. La ligne if se termine par un deux-points. La ligne indentée en dessous est le corps du if — le code qui s'exécute si la condition est vraie. Si hour valait 15, le corps serait entièrement sauté et rien ne s'afficherait.

L'indentation est la structure ici. Python sait quelles lignes appartiennent au if en regardant leurs espaces en début de ligne. Quatre espaces par niveau est la convention ; sois cohérent.

Ajouter une branche else

Souvent tu veux que quelque chose se passe dans les deux cas : ceci quand la condition est vraie, cela sinon. else sert à ça :

main.py
Output
Click Run to see the output here.

La ligne else n'a pas de condition — elle attrape tout ce que le if n'a pas attrapé.

Plusieurs branches avec elif

Pour plus de deux chemins, empile des clauses elif (« else if ») entre if et else :

main.py
Output
Click Run to see the output here.

Python parcourt les conditions de haut en bas et exécute le bloc pour la première qui est vraie. Les autres sont sautées. Cet ordre de haut en bas compte : si tu mets score >= 60 avant score >= 90, tout le monde a un D — la première condition vraie gagne.

Une structure soignée à garder en tête : les conditions devraient être mutuellement exclusives pour une entrée donnée, et l'ordre devrait refléter comment tu penses naturellement au problème. Mets les cas les plus spécifiques en premier, les plus généraux à la fin.

Les valeurs truthy dans les conditions

L'expression dans if n'a pas besoin de s'évaluer à un True ou False littéral. Python accepte n'importe quelle valeur et décide de sa truthiness :

main.py
Output
Click Run to see the output here.

if items: se lit « si la liste contient quelque chose ». Les valeurs falsy incluent :

  • False
  • 0, 0.0
  • None
  • Les conteneurs vides : "", [], {}, set(), ()

Tout le reste est truthy. Utiliser la truthiness rend le code plus naturel à lire, avec une réserve : si zéro est une valeur significative (un compteur qui est légitimement à zéro), compare explicitement avec is not None ou != 0 pour éviter la confusion « vide = zéro ».

Combiner des conditions

and, or et not te permettent de construire des conditions composées :

main.py
Output
Click Run to see the output here.

Les comparaisons enchaînées sont plus propres qu'un and explicite quand les extrémités partagent une valeur centrale :

main.py
Output
Click Run to see the output here.

C'est pareil que 18 <= age and age < 65, mais ça se lit comme une inégalité mathématique.

Instructions if imbriquées

Tu peux mettre un if dans un if. C'est légal, et parfois c'est la structure la plus claire — mais c'est aussi la principale façon dont le code conditionnel devient difficile à suivre. Si tu te retrouves à trois niveaux de profondeur, envisage d'aplatir avec des retours anticipés (une fois que tu écris des fonctions) ou en combinant des conditions :

main.py
Output
Click Run to see the output here.
main.py
Output
Click Run to see the output here.

Les deux marchent. Choisis la version qui se lit le mieux pour un lecteur qui n'a jamais vu ce code.

L'expression ternaire

Quand tu veux juste qu'une valeur soit l'une de deux choses selon une condition, Python a une forme compacte :

main.py
Output
Click Run to see the output here.

Lis ça de gauche à droite : « warm si temp est au moins 70, sinon cool ». C'est parfait pour de courtes affectations soit/soit. Arrête de l'utiliser dès que les branches s'allongent ou contiennent plusieurs opérations — à ce moment-là, un bloc if/else complet est plus facile à lire.

if est une expression dans un seul cas

Contrairement à certains langages, l'instruction if de Python elle-même ne produit pas de valeur. Seule la forme ternaire le fait. Tu ne peux pas écrire x = if ...: comme tu peux en Rust ou Kotlin. Si tu veux une valeur conditionnelle, utilise le ternaire ; si tu veux un comportement conditionnel, utilise un bloc if complet.

Un petit exemple complet

Un programme rapide qui classe une température :

main.py
Output
Click Run to see the output here.

Remarque que la logique, c'est surtout décider ce que devrait être advice. Tu peux voir en un coup d'œil quelle plage de température correspond à quel message. C'est la forme que tu vises quand tu écris des conditions — chaque branche devrait être petite et l'intention globale évidente.

La suite

Les conditions laissent ton code choisir un chemin. Les boucles le laissent répéter. Ensuite : les boucles for, la boucle la plus courante en Python de loin, et le partenaire naturel des collections que tu rencontreras quelques pages plus loin.

Questions fréquentes

Comment fonctionne une instruction if en Python ?

if condition: suivi d'un bloc indenté n'exécute le bloc que quand la condition est vraie. Des clauses elif (else if) optionnelles te permettent de vérifier des conditions supplémentaires, et un else optionnel s'exécute quand rien d'autre n'a correspondu.

Python a-t-il une instruction switch ?

Python 3.10 a ajouté match/case pour le filtrage par motif structurel, qui couvre la plupart des cas d'usage du switch et plus. Pour un branchement simple, une suite de if/elif reste courante et parfaitement acceptable.

Qu'est-ce qu'un if ternaire en Python ?

Une expression conditionnelle sur une ligne : result = a if condition else b. Ça se lit de gauche à droite — évaluer a quand condition est vraie, sinon évaluer b. Pratique pour de courtes affectations soit/soit ; moins lisible dès que les branches s'allongent.

Apprendre à coder avec Coddy

COMMENCER