Conditions en Python : guide débutant avec if elif else
Apprenez à utiliser if, elif et else en Python avec des exemples simples, des tests logiques et des bonnes pratiques pour débuter.

En Python, les conditions servent à faire prendre une décision à un programme. Au lieu d’exécuter toujours les mêmes lignes, le code peut réagir différemment selon une valeur, une comparaison ou le résultat d’un calcul. C’est une étape importante quand on débute, car elle permet de créer des programmes plus utiles, plus interactifs et plus proches de situations réelles.
Dans ce tutoriel, vous allez apprendre à utiliser if, elif et else avec des exemples simples. Nous verrons la structure de base, le rôle de l’indentation, les comparaisons, les opérateurs logiques et plusieurs cas pratiques. L’objectif est de comprendre clairement quand utiliser chaque mot-clé et comment éviter les erreurs fréquentes.
Prérequis
- Savoir lancer un script Python ou utiliser un interpréteur interactif.
- Connaître les variables simples comme des nombres et du texte.
- Comprendre qu’une instruction Python s’écrit ligne par ligne avec une indentation significative.
Matériel nécessaire
- Python 3 installé
- Éditeur de texte ou IDE
- Terminal ou console Python
Étapes
Comprendre le rôle d’une condition
Une condition permet de demander au programme : si telle situation est vraie, fais ceci. Sans condition, un script exécute simplement les instructions dans l’ordre. Avec une condition, il devient capable de choisir entre plusieurs chemins.
Exemple simple :
pythonage = 18 if age >= 18: print("Vous êtes majeur.")Ici, Python vérifie si la variable
ageest supérieure ou égale à18. Si c’est vrai, le message s’affiche. Si c’est faux, rien ne s’affiche dans cet exemple.Une condition produit donc un résultat de type booléen :
TrueouFalse. Python s’appuie sur ce résultat pour savoir s’il doit exécuter le bloc indenté sousif.Écrire une instruction if


La forme la plus simple d’une condition utilise
if. Sa structure générale est la suivante :pythonif condition: instructionPlusieurs éléments sont importants :
- Le mot-clé
ifcommence le test. - La
conditionest une expression qui vautTrueouFalse. - Le caractère
:termine la ligne du test. - Le bloc suivant doit être indenté.
Exemple :
pythontemperature = 25 if temperature > 20: print("Il fait plutôt chaud.")Si
temperaturevaut25, le test est vrai. Python exécute alors la ligne indentée. Si la valeur était18, le test serait faux et la ligne ne serait pas exécutée.On peut aussi mettre plusieurs lignes dans le bloc :
pythonsolde = 150 if solde > 0: print("Votre solde est positif.") print("Vous pouvez continuer.")Toutes les lignes alignées au même niveau d’indentation appartiennent au bloc du
if.- Le mot-clé
Comprendre l’indentation en Python
En Python, l’indentation n’est pas seulement une question de présentation. Elle sert à délimiter les blocs de code. C’est donc un point essentiel quand on écrit des conditions.
Exemple correct :
pythonnote = 14 if note >= 10: print("Admis")Exemple incorrect :
pythonnote = 14 if note >= 10: print("Admis")Dans le second cas, la ligne
printn’est pas indentée. Python considère alors que le bloc attendu aprèsifn’existe pas correctement.Il faut rester cohérent dans l’indentation. En pratique, on utilise souvent quatre espaces pour un niveau. L’important est de garder le même style dans tout le script.
Exemple avec plusieurs blocs :
pythonheure = 9 if heure < 12: print("Bonjour") print("C'est le matin") print("Fin du programme")Les deux premières lignes indentées appartiennent au
if. La dernière ligne, non indentée, est en dehors de la condition et s’exécute après celle-ci.Utiliser else pour le cas contraire
Le mot-clé
elsepermet de définir ce qu’il faut faire si la condition duifest fausse. C’est le bloc du cas contraire.Structure :
pythonif condition: instruction_si_vrai else: instruction_si_fauxExemple :
pythonage = 16 if age >= 18: print("Vous êtes majeur.") else: print("Vous êtes mineur.")Si
agevaut16, le premier message ne s’affiche pas. Python passe au blocelseet affiche le second.Le principe important est le suivant : parmi les deux blocs, un seul sera exécuté. Si la condition du
ifest vraie, Python exécute ce bloc et ignoreelse. Si elle est fausse, il ignore le bloc duifet exécuteelse.Autre exemple :
pythonmot_de_passe = "python123" if mot_de_passe == "python123": print("Accès autorisé") else: print("Accès refusé")Ici, on utilise
==pour vérifier l’égalité entre deux valeurs. Nous reviendrons juste après sur les opérateurs de comparaison.Connaître les opérateurs de comparaison

Les conditions utilisent très souvent des opérateurs de comparaison. Ils servent à comparer des valeurs et renvoient un booléen.
==: égal à!=: différent de>: supérieur à<: inférieur à>=: supérieur ou égal à<=: inférieur ou égal à
Exemples :
pythonx = 10 print(x == 10) print(x != 5) print(x > 3) print(x < 20)Chaque ligne affiche
TrueouFalse.Dans une condition :
pythonprix = 100 if prix <= 100: print("Le produit est dans le budget.")Attention à ne pas confondre :
=pour affecter une valeur à une variable==pour comparer deux valeurs
Exemple d’affectation :
pythonnom = "Lina"Exemple de comparaison :
pythonif nom == "Lina": print("Bonjour Lina")Cette différence est fondamentale lorsqu’on débute.
Ajouter plusieurs cas avec elif
Quand deux chemins ne suffisent pas, on peut utiliser
elif, qui signifie en pratique sinon si. Cela permet de tester plusieurs cas les uns après les autres.Structure :
pythonif condition_1: instruction_1 elif condition_2: instruction_2 else: instruction_3Exemple avec une note :
pythonnote = 12 if note >= 16: print("Très bien") elif note >= 12: print("Assez bien") else: print("À renforcer")Python lit les tests dans l’ordre :
- Il teste d’abord
note >= 16. - Si c’est faux, il teste
note >= 12. - Si ce second test est vrai, il exécute son bloc et s’arrête là.
- Sinon, il exécute le bloc
else.
Il peut y avoir plusieurs
elif:pythonnote = 8 if note >= 16: print("Très bien") elif note >= 14: print("Bien") elif note >= 12: print("Assez bien") elif note >= 10: print("Passable") else: print("Insuffisant")Une seule branche sera exécutée : la première dont la condition est vraie. C’est pour cela que l’ordre des tests est important.
- Il teste d’abord
Faire attention à l’ordre des conditions
Avec
elif, l’ordre des tests change le résultat. Python s’arrête dès qu’une condition vraie est trouvée. Il faut donc placer les cas du plus spécifique au plus général, ou du plus grand au plus petit selon le besoin.Exemple correct :
pythonage = 15 if age >= 18: print("Majeur") elif age >= 13: print("Adolescent") else: print("Enfant")Exemple problématique :
pythonage = 15 if age >= 13: print("Adolescent") elif age >= 18: print("Majeur") else: print("Enfant")Ici, pour
age = 18, le premier testage >= 13serait déjà vrai. Python afficherait doncAdolescentet n’irait jamais jusqu’au testage >= 18.Quand vous écrivez plusieurs conditions, relisez toujours leur ordre pour vérifier que chaque cas peut réellement être atteint.
Utiliser les booléens dans les conditions
Les conditions reposent sur les valeurs booléennes
TrueetFalse. Certaines variables peuvent directement contenir ce type de valeur.pythonconnecte = True if connecte: print("Bienvenue") else: print("Veuillez vous connecter")Ici, il n’est pas nécessaire d’écrire
if connecte == True. La formeif connecte:est suffisante et plus lisible.Autre exemple :
pythontermine = False if termine: print("Le téléchargement est fini") else: print("Téléchargement en cours")On peut aussi inverser un booléen avec
not:pythonconnecte = False if not connecte: print("Accès non autorisé")Le mot-clé
notinverse le résultat logique :TruedevientFalse, etFalsedevientTrue.Combiner plusieurs conditions avec and, or et not
Il est fréquent de vouloir tester plusieurs éléments en même temps. Python permet cela avec les opérateurs logiques
and,oretnot.Le mot-clé and
andsignifie que toutes les conditions reliées doivent être vraies.pythonage = 20 carte = True if age >= 18 and carte: print("Entrée autorisée")Le message s’affiche seulement si la personne a au moins 18 ans et possède sa carte.
Le mot-clé or
orsignifie qu’au moins une des conditions doit être vraie.pythonjour = "samedi" if jour == "samedi" or jour == "dimanche": print("C'est le week-end")Si l’une des deux comparaisons est vraie, le bloc s’exécute.
Le mot-clé not
notinverse une condition.pythonpluie = False if not pluie: print("On peut sortir")Exemple plus complet :
pythonage = 17 accompagne = True if age >= 18 or accompagne: print("Entrée possible") else: print("Entrée refusée")Avec ce type de condition, prenez l’habitude de lire la phrase à voix haute. Cela aide à vérifier si la logique du test correspond bien à l’intention.
Écrire des conditions avec input
Les conditions deviennent particulièrement utiles quand on récupère une saisie utilisateur avec
input(). Le programme peut alors adapter sa réponse.Exemple avec une réponse textuelle :
pythonreponse = input("Aimez-vous Python ? ") if reponse == "oui": print("Super !") else: print("Vous changerez peut-être d'avis en pratiquant.")Il faut garder en tête que
input()renvoie du texte. Si vous attendez un nombre, il faut le convertir avant de comparer numériquement.Exemple :
pythonage = int(input("Quel âge avez-vous ? ")) if age >= 18: print("Vous pouvez continuer.") else: print("Accès limité.")Ici,
int()convertit la saisie en entier. Sans cette conversion, la variable contiendrait une chaîne de caractères.On peut aussi combiner cela avec
elif:pythonnote = int(input("Entrez votre note : ")) if note >= 16: print("Très bien") elif note >= 10: print("Admis") else: print("Ajourné")Ce type d’exercice est très formateur pour débuter, car il relie variables, types et conditions.
Imbriquer des conditions
Il est possible de placer une condition à l’intérieur d’une autre. On parle alors de conditions imbriquées. Cela peut être utile lorsque plusieurs décisions dépendent les unes des autres.
Exemple :
pythonage = 20 abonne = True if age >= 18: if abonne: print("Tarif abonné adulte") else: print("Tarif adulte standard") else: print("Tarif mineur")Python commence par tester l’âge. Si la personne est majeure, un second test vérifie si elle est abonnée.
Cette technique fonctionne bien, mais il faut rester prudent. Trop d’imbrications rendent le code plus difficile à lire. Quand c’est possible, une combinaison logique avec
andouorpeut parfois rendre le code plus simple.Par exemple, ce code est plus direct :
pythonage = 20 abonne = True if age >= 18 and abonne: print("Tarif abonné adulte") elif age >= 18: print("Tarif adulte standard") else: print("Tarif mineur")Le résultat logique peut être plus facile à suivre selon le contexte.
Exemples pratiques pour bien retenir
Voici plusieurs exemples courts pour consolider les bases.
Exemple 1 : nombre positif, négatif ou nul
pythonnombre = -3 if nombre > 0: print("Le nombre est positif") elif nombre < 0: print("Le nombre est négatif") else: print("Le nombre est nul")Exemple 2 : accès à une réduction
pythonmontant = 120 if montant >= 100: print("Réduction appliquée") else: print("Pas de réduction")Exemple 3 : identification simple
pythonutilisateur = "admin" if utilisateur == "admin": print("Bonjour administrateur") else: print("Bonjour utilisateur")Exemple 4 : test sur le jour
pythonjour = "lundi" if jour == "samedi" or jour == "dimanche": print("Repos") else: print("Travail ou étude")Exemple 5 : vérifier une plage de valeurs
pythonage = 25 if age >= 18 and age <= 30: print("Vous êtes dans la tranche 18-30") else: print("Vous êtes hors de cette tranche")Ces exemples montrent que les conditions sont partout : validation, catégorisation, affichage de messages, gestion de droits ou adaptation d’un comportement.
Lire et tester ses conditions pas à pas
Quand une condition ne se comporte pas comme prévu, il est utile de la lire étape par étape. Voici une méthode simple :
- Vérifiez la valeur réelle des variables.
- Relisez chaque opérateur de comparaison.
- Regardez l’ordre des
ifetelif. - Contrôlez l’indentation.
- Testez avec plusieurs valeurs différentes.
Exemple :
pythonage = 17 if age >= 18: print("Majeur") else: print("Mineur")Pour comprendre ce qui se passe, on peut raisonner ainsi :
agevaut17- Le test
17 >= 18vautFalse - Le bloc
ifest ignoré - Le bloc
elses’exécute
On peut aussi afficher temporairement des valeurs pour déboguer :
pythonage = 17 print(age) print(age >= 18) if age >= 18: print("Majeur") else: print("Mineur")Cette habitude aide beaucoup au début pour comprendre la logique réelle du programme.
Bonnes pratiques pour débuter proprement
Voici quelques conseils simples pour écrire de meilleures conditions en Python :
- Choisissez des noms de variables clairs :
age,note,connectesont plus parlants quexoua. - Gardez les conditions lisibles : si une ligne devient trop compliquée, simplifiez-la ou découpez le problème.
- Évitez les tests inutiles : préférez
if connecte:àif connecte == True:. - Soignez l’ordre des cas : surtout quand vous utilisez plusieurs
elif. - Testez des cas variés : valeurs limites, cas vrais, cas faux, cas intermédiaires.
Exemple plus lisible :
pythonage = 22 est_abonne = True if age >= 18 and est_abonne: print("Accès premium") else: print("Accès standard")Le but n’est pas seulement que le code fonctionne, mais aussi qu’il reste facile à relire et à corriger.
- Choisissez des noms de variables clairs :
Erreurs fréquentes & dépannage
- Oublier les deux-points après
if,elifouelse. - Mal indenter le bloc qui suit une condition.
- Confondre
=et==: le premier affecte, le second compare. - Placer les tests dans le mauvais ordre, surtout avec plusieurs
elif. - Comparer directement un nombre saisi avec
input()sans conversion avecint()lorsque l’on attend un entier. - Créer des conditions trop complexes dès le début, au lieu de les simplifier.
Astuces & pour aller plus loin
- Commencez par écrire une condition simple avec
ifseul, puis ajoutezelseetelifsi nécessaire. - Testez vos scripts avec plusieurs valeurs pour vérifier tous les chemins possibles.
- Lisez vos conditions comme une phrase en français pour valider leur logique.
- Utilisez des booléens explicites comme
est_connecteouest_adminpour rendre le code plus clair. - Si une condition devient difficile à comprendre, séparez-la en plusieurs tests plus simples.
Questions fréquentes
Quelle est la différence entre if et elif ?
Le mot-clé if démarre le premier test. Le mot-clé elif ajoute un autre test qui sera vérifié seulement si les tests précédents sont faux.
Est-ce que else est obligatoire ?
Non. Vous pouvez écrire une condition avec seulement if. Le bloc else est utile quand vous voulez définir explicitement le cas contraire.
Peut-on mettre plusieurs elif ?
Oui. Vous pouvez en chaîner autant que nécessaire. Python exécutera uniquement la première branche dont la condition est vraie.
Pourquoi l’indentation est-elle importante en Python ?
Parce qu’elle délimite les blocs de code. Après un if, un elif ou un else, les lignes indentées appartiennent au bloc correspondant.
Pourquoi input() pose parfois problème dans une condition ?
Parce que input() renvoie du texte. Si vous voulez comparer une saisie comme un nombre, vous devez d’abord la convertir, par exemple avec int().
Conclusion
Les conditions font partie des bases indispensables en Python. Avec if, vous testez un cas. Avec elif, vous ajoutez des cas supplémentaires. Avec else, vous gérez ce qu’il faut faire quand aucun test précédent n’est vrai. En maîtrisant aussi l’indentation, les comparaisons et les opérateurs logiques, vous pouvez déjà écrire des programmes capables de prendre des décisions simples mais très utiles.
Pour progresser, le plus efficace est de pratiquer : testez différentes valeurs, modifiez les exemples du tutoriel et essayez de créer vos propres mini-programmes, comme un vérificateur d’âge, un système de note ou un menu simple. C’est en répétant ces structures que leur logique devient naturelle.