Vue d'ensemble
Un programme intéressant doit pouvoir choisir : faire une chose si une condition
est vraie, une autre sinon. C'est le rôle du if, qui s'appuie sur les
booléens (True / False) produits par les comparaisons.
Maîtriser conditions et booléens, c'est la clé pour écrire des algorithmes qui réagissent aux
données.
and, or,
not.
Prérequis
- Variables, types et expressions (fiche précédente)
- Différence entre
=(affectation) et==(test)
Les conditions imbriquées te perdent ? C'est un point qui bloque beaucoup à l'entrée en prépa. Nos mentors alumni X · Centrale · Mines t'apprennent à structurer ton raisonnement pour ne plus jamais te tromper de branche.
Trouver un mentor →1. Booléens et comparaisons
Un booléen est une valeur de vérité : True (vrai) ou
False (faux). Une comparaison produit un booléen.
3 == 3 # True : égalité
3 != 5 # True : différent
2 < 5 # True : strictement inférieur
5 <= 5 # True : inférieur ou égal
7 > 10 # False
3 == 3.0 # True : même valeur, même si int et float== et !=Égal / différent. Attention : == (double égal) teste, = (simple) affecte. Ne jamais les confondre dans un if.< <= > >=Comparaisons d'ordre. Chacune renvoie True ou False. On peut aussi comparer des chaînes (ordre alphabétique).3 == 3.0int vs float. La comparaison porte sur la valeur : 3 == 3.0 est True.2. La structure if / elif / else
On exécute un bloc seulement si une condition est vraie. L'indentation (décalage à droite) délimite le bloc : en Python, elle n'est pas décorative, elle est obligatoire.
note = 12
if note >= 16:
mention = "très bien"
elif note >= 12:
mention = "assez bien"
else:
mention = "sans mention"
print(mention) # affiche : assez bienif note >= 16:Première condition. Si elle est vraie, on exécute le bloc indenté et on saute tout le reste (elif/else). Ici 12 >= 16 est faux, on passe à la suite.elif note >= 12:« sinon si ». Testée seulement si les précédentes sont fausses. 12 >= 12 est vrai → mention = "assez bien", et on saute le else.else:Cas par défaut. Exécuté seulement si toutes les conditions au-dessus sont fausses.note >= 12 avant
note >= 16, une note de 18 tomberait dans « assez bien ».
3. Combiner des conditions : and, or, not
age = 20
etudiant = True
age >= 18 and etudiant # True : les DEUX doivent être vraies
age < 12 or etudiant # True : au moins UNE vraie suffit
not etudiant # False : inverse le booléenandET. Vrai seulement si les deux conditions sont vraies.orOU. Vrai si au moins une des deux est vraie.notNON. Inverse : not True vaut False.x entre 0 et 10 », on écrit
0 <= x and x <= 10 (ou, en Python, directement 0 <= x <= 10).
4. Exercices d'application
À faire de tête avant d'ouvrir le corrigé.
x = 7
if x % 2 == 0:
print("pair")
else:
print("impair")Voir la correction détaillée
x % 2 = 7 % 2 = 1 (reste de 7 par 2).1 == 0 est faux → on exécute le bloc else.Écris la condition d'un if qui est vraie quand un entier n est un multiple de 3 et compris strictement entre 0 et 100.
Voir la correction détaillée
n % 3 == 0.0 < n and n < 100 (ou 0 < n < 100).and : n % 3 == 0 and 0 < n < 100.Récap final — Ce qu'il faut absolument retenir
Tu dois pouvoir répondre « oui » sans hésiter à chaque point.
- Sais-tu qu'une comparaison (
==,<…) produit un booléen ? - Ne confonds-tu jamais
=(affecte) et==(teste) ? - Sais-tu qu'un seul bloc du
if / elif / elses'exécute (le premier vrai) ? - Sais-tu pourquoi l'ordre des tests compte ?
- Sais-tu que l'indentation délimite le bloc et qu'elle est obligatoire ?
- Sais-tu combiner des conditions avec
and,or,not? - Sais-tu tester la parité (
n % 2 == 0) et un multiple (n % 3 == 0) ?