1. Comparer : les booléens
Une comparaison produit toujours un booléen : True (vrai) ou False (faux).
| Opérateur | Signification | Exemple | Résultat |
|---|---|---|---|
== | est égal à | 5 == 5 | True |
!= | est différent de | 5 != 3 | True |
< > | inférieur / supérieur | 2 > 7 | False |
<= >= | inférieur ou égal / supérieur ou égal | 18 >= 18 | True |
On peut aussi comparer des textes : "chat" == "chat" est vrai, mais "Chat" == "chat" est faux (la majuscule compte).
2. La structure if
C’est la traduction directe du SI … ALORS du pseudo-code :
age = int(input("Ton âge ? "))
if age >= 18:
print("Tu es majeur.")
print("Tu peux voter.")
print("Fin du programme.") # toujours exécuté
- La ligne
ifse termine par deux-points:. - Les instructions qui dépendent de la condition sont décalées de 4 espaces (Thonny le fait automatiquement après les deux-points, ou avec la touche Tab).
- Dès qu’on revient à gauche, on sort du bloc.
3. if … else et if … elif … else
else (sinon) traite le cas où la condition est fausse :
nombre = int(input("Un nombre ? "))
if nombre % 2 == 0:
print("Pair")
else:
print("Impair")
Pour plus de deux cas, on enchaîne avec elif (contraction de « else if ») :
note = float(input("Ta note sur 20 ? "))
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")
Python teste les conditions dans l’ordre et s’arrête à la première vraie. Avec 15, le premier test est faux, le deuxième vrai : il affiche « Bien » et ignore la suite. C’est pourquoi l’ordre des elif est important.
4. Combiner des conditions
| Opérateur | Vrai quand… | Exemple |
|---|---|---|
and | les deux conditions sont vraies | age >= 18 and age < 65 |
or | au moins une condition est vraie | jour == "samedi" or jour == "dimanche" |
not | la condition est fausse | not est_connecte |
jour = input("Quel jour sommes-nous ? ").lower() # .lower() met en minuscules
heure = int(input("Quelle heure (0-23) ? "))
if (jour == "samedi" or jour == "dimanche") and heure < 10:
print("Grasse matinée autorisée !")
else:
print("Debout !")
Python permet aussi une écriture proche des maths : if 10 <= note <= 20:.
5. Conditions imbriquées
Un if peut contenir un autre if. Chaque niveau ajoute 4 espaces :
a_un_billet = input("As-tu un billet (o/n) ? ") == "o"
age = int(input("Ton âge ? "))
if a_un_billet:
if age < 12:
print("Entrée enfant, bon film !")
else:
print("Bon film !")
else:
print("Direction la billetterie.")
Remarque la première ligne : la comparaison == "o" produit directement un booléen rangé dans la variable. Évite toutefois d’imbriquer trop profondément : au-delà de deux ou trois niveaux, le code devient difficile à lire.
6. Mini-projet : le conseiller vestimentaire
7. Bilan
Exercices corrigés
Pour les conditions, pense à tester chaque branche du programme (chaque if, elif et else) ainsi que les valeurs limites (exactement 10, exactement 50…).
Exercice 2.1 — Premiers choix
Voir le corrigé
# 1. Signe
n = float(input("Un nombre ? "))
if n > 0:
print("Positif")
elif n < 0:
print("Négatif")
else:
print("Nul")
# 2. Le plus grand
a = float(input("a ? "))
b = float(input("b ? "))
if a > b:
print(f"Le plus grand est {a}")
elif b > a:
print(f"Le plus grand est {b}")
else:
print("Égaux")
# 3. Livraison
montant = float(input("Montant de la commande ? "))
if montant >= 50:
frais = 0
else:
frais = 4.90
print(f"Total à payer : {montant + frais:.2f} €")
Explication
Dans le 3, on calcule les frais dans une variable puis on fait un seul affichage : cela évite de répéter le print dans chaque branche.
Exercice 2.2 — Année bissextile
Voir le corrigé
annee = int(input("Année ? "))
if (annee % 4 == 0 and annee % 100 != 0) or annee % 400 == 0:
print(f"{annee} est bissextile")
else:
print(f"{annee} n'est pas bissextile")
Explication
La règle se traduit presque mot pour mot : « divisible par 4 et pas par 100 », ou « divisible par 400 ». Les parenthèses rendent la priorité explicite.
Pour aller plus loin
Le module calendar contient déjà calendar.isleap(annee). Refaire soi-même une fonction existante est un excellent exercice, mais dans un vrai projet on utilise ce qui existe.
Mini-projet
Voir le corrigé
temp = float(input("Température (°C) ? "))
pluie = input("Pleut-il (o/n) ? ").lower()
if temp < 5:
conseil = "manteau, bonnet et gants"
elif temp < 15:
conseil = "une veste"
elif temp < 25:
conseil = "un pull léger"
else:
conseil = "tee-shirt et casquette"
if pluie == "o":
print(f"Mets {conseil} et n'oublie pas ton parapluie.")
elif pluie == "n":
print(f"Mets {conseil}.")
else:
print("Réponse non comprise pour la pluie.")
Explication
On sépare les deux décisions : d’abord la tenue selon la température (un if/elif/else qui remplit la variable conseil), ensuite l’affichage selon la pluie. Grâce aux elif, il suffit d’écrire temp < 15 : on sait déjà que temp n’est pas inférieure à 5.
🧠 Testez vos connaissances
5 questions. Répondez puis cliquez sur « Corriger ». Rien n’est enregistré : c’est de l’auto-évaluation.
© 2026 Bruno Jousseaume. Ce cours est publié sous licence CC BY-NC-SA 4.0 : vous pouvez le partager et l’adapter en citant l’auteur et un lien vers cette page, sans usage commercial, et en partageant vos adaptations sous la même licence.