Conditions en Python : if, elif, else pour débutants
Apprenez à utiliser if, elif et else en Python avec une explication simple, des exemples clairs et les erreurs fréquentes à éviter.

Les conditions font partie des bases indispensables en Python. Elles permettent à un programme de prendre une décision selon une situation donnée. Par exemple, on peut afficher un message différent si un nombre est positif, négatif ou égal à zéro. En Python, ce mécanisme repose surtout sur trois mots-clés : if, elif et else.
Dans ce tutoriel, nous allons voir à quoi servent ces instructions, comment les écrire correctement, comment les enchaîner, et quelles erreurs éviter quand on débute. L’objectif est de comprendre simplement la logique des conditions, puis de savoir les utiliser dans de petits programmes Python.
Prérequis
- Savoir lancer un script Python ou utiliser l’interpréteur interactif.
- Connaître les bases de l’écriture Python : variables, affichage avec
print()et indentation simple. - Comprendre qu’une comparaison peut produire une valeur vraie ou fausse.
Matériel nécessaire
- Python 3 installé sur votre ordinateur
- Un éditeur de code ou l’interpréteur Python
- Quelques minutes pour tester les exemples
Étapes
Comprendre le rôle d’une condition


Une condition sert à exécuter du code seulement dans certains cas. Sans condition, un programme suit les instructions dans l’ordre, de haut en bas. Avec une condition, le programme peut choisir un chemin différent selon le résultat d’un test.
Ce test renvoie une valeur booléenne, c’est-à-dire
TrueouFalse. Si le test est vrai, Python exécute le bloc prévu. S’il est faux, il passe au bloc suivant éventuel, ou continue après la condition.Exemple très simple :
pythonage = 18 if age >= 18: print("Vous êtes majeur.")Ici, Python vérifie si
age >= 18. Si c’est vrai, le message s’affiche. Sinon, rien ne s’affiche dans cet exemple.On peut voir une condition comme une question posée au programme :
- Est-ce que l’âge est supérieur ou égal à 18 ?
- Si oui, faire une action.
- Sinon, faire autre chose ou ne rien faire.
Cette idée est au cœur de très nombreux programmes : contrôle d’accès, validation d’une valeur, choix d’un calcul, affichage d’un message particulier, etc.
Écrire un bloc if simple
Le mot-clé
ifsignifie « si ». C’est la forme la plus simple d’une condition en Python.Sa structure de base est la suivante :
pythonif condition: instructionIl faut noter trois éléments importants :
- Le mot-clé
if. - Une condition après
if. - Un deux-points
:à la fin de la ligne.
Les instructions à exécuter si la condition est vraie doivent être indentées. En Python, l’indentation fait partie de la syntaxe. Cela veut dire qu’elle ne sert pas seulement à rendre le code plus lisible : elle indique aussi à Python quel bloc appartient à la condition.
Exemple :
pythontemperature = 30 if temperature > 25: print("Il fait chaud.")Comme
temperature > 25est vrai ici, le message s’affiche.Si on change la valeur :
pythontemperature = 20 if temperature > 25: print("Il fait chaud.")Cette fois, rien ne s’affiche, car la condition est fausse.
Un bloc
ifpeut contenir plusieurs lignes :pythonsolde = 150 if solde > 100: print("Solde suffisant.") print("Vous pouvez continuer.")Dans cet exemple, les deux lignes indentées appartiennent au bloc
if. Si la condition est vraie, les deux s’exécutent.- Le mot-clé
Utiliser else pour le cas contraire

Le mot-clé
elsesignifie « sinon ». Il permet de définir ce qu’il faut faire lorsque la condition duifest fausse.Structure :
pythonif condition: instruction_si_vrai else: instruction_si_fauxExemple :
pythonage = 16 if age >= 18: print("Vous êtes majeur.") else: print("Vous êtes mineur.")Ici, si la condition
age >= 18est vraie, Python affiche le premier message. Sinon, il affiche le second.Avec
else, on couvre donc les deux cas :- cas vrai ;
- cas faux.
C’est souvent la manière la plus claire d’écrire un choix binaire.
Autre exemple :
pythonmot_de_passe_correct = False if mot_de_passe_correct: print("Connexion autorisée.") else: print("Connexion refusée.")Ici, on utilise directement une valeur booléenne. Si elle vaut
True, le premier bloc s’exécute. Si elle vautFalse, c’est le blocelse.Il est important de comprendre que
elsene contient pas de condition. Il représente simplement tout ce qui n’a pas été pris par leif.Ajouter plusieurs cas avec elif
Le mot-clé
elifsignifie « sinon si ». Il permet de tester plusieurs cas successifs.Structure :
pythonif condition_1: bloc_1 elif condition_2: bloc_2 else: bloc_3Python commence par tester la première condition. Si elle est vraie, il exécute son bloc et s’arrête pour cette structure. Sinon, il teste la condition suivante avec
elif. Si aucune condition n’est vraie, le blocelseest exécuté, s’il existe.Exemple classique :
pythonnote = 14 if note >= 16: print("Très bien") elif note >= 12: print("Bien") elif note >= 10: print("Moyenne") else: print("Insuffisant")Avec
note = 14, Python afficheBien.Pourquoi ?
note >= 16est faux ;note >= 12est vrai ;- Python exécute ce bloc et ne teste pas les suivants.
C’est un point très important : dans une chaîne
if / elif / else, le premier test vrai gagne.Autre exemple :
pythonheure = 8 if heure < 12: print("Bonjour") elif heure < 18: print("Bon après-midi") else: print("Bonsoir")Si
heurevaut 8, le programme afficheBonjour. Si elle vaut 15, il afficheBon après-midi. Si elle vaut 20, il afficheBonsoir.On peut mettre autant de
elifque nécessaire, mais il vaut mieux garder une logique claire et simple.Bien comprendre les comparaisons
Les conditions utilisent souvent des opérateurs de comparaison. Ces opérateurs permettent de comparer des valeurs entre elles.
Voici les comparaisons les plus courantes :
==: égal à!=: différent de>: supérieur à<: inférieur à>=: supérieur ou égal à<=: inférieur ou égal à
Exemples :
pythonx = 10 if x == 10: print("x vaut 10") if x != 5: print("x n'est pas égal à 5") if x > 3: print("x est plus grand que 3")Quand on débute, une erreur très fréquente consiste à confondre
=et==.=sert à affecter une valeur à une variable.==sert à comparer deux valeurs.
Exemple correct :
pythonnombre = 7 if nombre == 7: print("Le nombre vaut 7")Les comparaisons peuvent aussi porter sur des chaînes de caractères :
pythoncouleur = "bleu" if couleur == "bleu": print("La couleur est bleu") else: print("La couleur est différente")Dans ce cas, il faut écrire exactement la valeur attendue, avec la même orthographe.
Combiner plusieurs conditions
Il est possible de combiner plusieurs tests dans une même condition. En Python, on utilise souvent
and,oretnot.and: toutes les conditions doivent être vraies ;or: au moins une condition doit être vraie ;not: inverse le résultat.
Exemple avec
and:pythonage = 20 carte_identite = True if age >= 18 and carte_identite: print("Entrée autorisée")Ici, il faut être majeur et avoir la carte d’identité.
Exemple avec
or:pythonjour = "samedi" if jour == "samedi" or jour == "dimanche": print("C'est le week-end")Si l’une des deux comparaisons est vraie, le message s’affiche.
Exemple avec
not:pythonconnecte = False if not connecte: print("Veuillez vous connecter")Comme
connectevautFalse, l’expressionnot connectedevient vraie.On peut bien sûr combiner plusieurs opérateurs, mais pour un débutant, il est conseillé de rester lisible. Si la condition devient difficile à comprendre, il peut être utile de la découper en plusieurs étapes avec des variables simples.
Respecter l’ordre des tests
Dans une structure contenant plusieurs branches, l’ordre des conditions est essentiel. Comme Python s’arrête au premier cas vrai, une mauvaise organisation peut produire un résultat inattendu.
Regardons cet exemple :
pythonnote = 17 if note >= 10: print("Admis") elif note >= 16: print("Très bien")Avec
note = 17, Python afficheAdmis, pasTrès bien. Pourquoi ? Parce que le premier testnote >= 10est déjà vrai, donc Python n’atteint jamais leelif.Pour corriger cela, il faut placer les cas les plus spécifiques ou les plus exigeants avant les cas plus larges :
pythonnote = 17 if note >= 16: print("Très bien") elif note >= 10: print("Admis") else: print("Refusé")Cette fois, le résultat correspond mieux à l’intention.
Ce principe est très utile dès qu’on classe une valeur dans des intervalles : notes, âge, température, score, heure, etc. En général, il faut penser à l’ordre de lecture du programme avant d’écrire les tests.
Écrire des conditions avec input()
Les conditions deviennent plus intéressantes quand elles utilisent une valeur saisie par l’utilisateur. Pour cela, on peut employer
input().Exemple simple :
pythonprenom = input("Quel est votre prénom ? ") if prenom == "Alice": print("Bonjour Alice") else: print("Bonjour")Ici, le programme compare le texte saisi avec la chaîne
"Alice".Avec des nombres, il faut faire attention :
input()renvoie du texte. Si on veut comparer une valeur numérique, on convertit souvent la saisie avecint().pythonage = int(input("Quel âge avez-vous ? ")) if age >= 18: print("Accès autorisé") else: print("Accès refusé")Dans cet exemple, la conversion avec
int()permet de traiter l’âge comme un nombre entier.On peut aussi proposer plusieurs réponses :
pythonreponse = input("Aimez-vous Python ? ") if reponse == "oui": print("Super") elif reponse == "un peu": print("C'est déjà bien") else: print("Peut-être plus tard")Quand on travaille avec des saisies utilisateur, il faut garder à l’esprit que les réponses peuvent varier. Pour débuter, on peut toutefois rester sur des cas simples et des valeurs attendues clairement définies.
Nicher des conditions
Une condition peut contenir une autre condition. On parle alors de conditions imbriquées ou de conditions nichées.
Exemple :
pythonage = 20 abonne = True if age >= 18: if abonne: print("Accès premium autorisé") else: print("Abonnement requis") else: print("Vous devez être majeur")Le programme commence par vérifier l’âge. Si la personne est majeure, alors un second test vérifie si elle est abonnée.
Ce type de structure peut être utile, mais il faut rester prudent : trop de niveaux d’imbrication rendent le code plus difficile à lire. Très souvent, une combinaison avec
andou une réorganisation des tests peut suffire.Par exemple, ce code est plus direct :
pythonage = 20 abonne = True if age >= 18 and abonne: print("Accès premium autorisé") else: print("Accès non autorisé")Les deux formes existent, mais pour un débutant, la version la plus lisible est souvent la meilleure.
Faire de petits exemples concrets
Pour bien apprendre les conditions, il est utile de s’exercer avec des cas très concrets. Voici plusieurs mini-exemples.
Exemple 1 : nombre positif, négatif ou nul
pythonnombre = 0 if nombre > 0: print("Positif") elif nombre < 0: print("Négatif") else: print("Nul")Ce programme distingue trois situations.
Exemple 2 : réduction selon l’âge
pythonage = 12 if age < 12: print("Tarif enfant") elif age < 18: print("Tarif ado") else: print("Tarif adulte")Ici, l’ordre des tests permet de classer l’âge dans une seule catégorie.
Exemple 3 : vérification d’un score
pythonscore = 85 if score >= 100: print("Score maximum atteint") elif score >= 50: print("Bon score") else: print("Continuez à jouer")Le programme adapte le message au résultat.
Exemple 4 : pair ou impair
pythonnombre = 7 if nombre % 2 == 0: print("Pair") else: print("Impair")L’opérateur
%donne le reste d’une division. Si le reste de la division par 2 est 0, le nombre est pair.Exemple 5 : mot de passe simple
pythonmot_de_passe = input("Mot de passe : ") if mot_de_passe == "python123": print("Accès autorisé") else: print("Mot de passe incorrect")Ce dernier exemple montre comment une condition peut servir à valider une entrée utilisateur.
Lire et déboguer une condition
Quand une condition ne fonctionne pas comme prévu, il faut apprendre à la relire calmement. Le plus simple est de vérifier chaque élément un par un :
- La variable contient-elle bien la valeur attendue ?
- L’opérateur de comparaison est-il le bon ?
- L’ordre des tests est-il correct ?
- L’indentation est-elle cohérente ?
On peut aussi afficher des valeurs pour comprendre ce qui se passe :
pythonage = 17 print(age) if age >= 18: print("Majeur") else: print("Mineur")Ou encore tester directement le résultat d’une comparaison :
pythonage = 17 print(age >= 18)Le programme affichera
False, ce qui aide à comprendre pourquoi le blocifne s’exécute pas.Cette habitude de vérification est très utile quand on débute. Elle permet de transformer une erreur floue en problème précis : mauvaise valeur, mauvais test ou mauvais placement du bloc.
Erreurs fréquentes & dépannage
- Oublier les deux-points après
if,elifouelse. - Mal indenter le bloc d’instructions. En Python, l’indentation est obligatoire.
- Confondre
=et==: le premier affecte une valeur, le second compare. - Placer les tests dans le mauvais ordre, ce qui peut empêcher certains cas d’être atteints.
- Comparer un texte alors qu’on attend un nombre après un
input()non converti. - Multiplier les conditions compliquées sans chercher la version la plus lisible.
Astuces & pour aller plus loin
- Commencez par écrire vos conditions en langage naturel avant de les traduire en Python.
- Testez plusieurs valeurs pour vérifier tous les cas : vrai, faux, limites et cas intermédiaires.
- Gardez des noms de variables simples comme
age,noteouscorepour mieux suivre la logique. - Quand une condition devient difficile à lire, simplifiez-la ou découpez-la en plusieurs étapes.
- Utilisez
print()temporairement pour observer les valeurs et comprendre le chemin pris par le programme.
Questions fréquentes
Quelle est la différence entre if et elif ?
if ouvre la condition principale. elif ajoute un nouveau test si les tests précédents étaient faux. Il permet donc de gérer plusieurs cas successifs.
Le else est-il obligatoire ?
Non. On peut écrire un if seul, ou un if avec un ou plusieurs elif. else est utile seulement si vous voulez traiter le cas restant.
Pourquoi mon code ne marche-t-il pas alors que la condition semble correcte ?
Vérifiez d’abord l’indentation, les deux-points, l’opérateur de comparaison et la valeur réellement contenue dans vos variables. Avec input(), vérifiez aussi si vous manipulez du texte ou un nombre.
Peut-on mettre plusieurs elif ?
Oui. Vous pouvez en mettre autant que nécessaire pour tester plusieurs situations, tant que l’ensemble reste clair et lisible.
À quoi sert not dans une condition ?
not inverse le résultat d’une expression booléenne. Par exemple, si une variable vaut False, alors not devant cette variable produit une valeur vraie.
Conclusion
Les instructions if, elif et else sont parmi les outils les plus importants en Python. Elles permettent à vos programmes de faire des choix simples, puis de devenir progressivement plus intelligents selon les données qu’ils reçoivent.
Pour bien progresser, retenez surtout trois idées : une condition repose sur un test vrai ou faux, l’ordre des branches compte, et l’indentation doit être irréprochable. En vous entraînant avec de petits exemples concrets, vous développerez rapidement les bons réflexes pour écrire des conditions claires et correctes.
La meilleure suite consiste maintenant à pratiquer : testez vos propres variables, modifiez les exemples, puis essayez de construire un mini-programme qui réagit différemment selon l’âge, la note, l’heure ou une réponse utilisateur.