Python — Booléens, comparaisons et conditions
1) Booléens : le type bool
x = True
print(x)
print(type(x))
Sortie
True <class 'bool'>
En pratique, on ne met pas toujours True / False en dur : on obtient des booléens via des opérateurs de comparaison et des opérateurs logiques.
2) Opérateurs de comparaison
Voici les comparaisons les plus courantes :
| Opération | Description | Opération | Description |
|---|---|---|---|
a == b | a égal à b | a != b | a différent de b |
a < b | a strictement inférieur à b | a > b | a strictement supérieur à b |
a <= b | a inférieur ou égal à b | a >= b | a supérieur ou égal à b |
Exemples :
def can_run_for_president(age):
"""Aux États-Unis, il faut avoir au moins 35 ans."""
return age >= 35
print("Une personne de 19 ans peut-elle se présenter ?", can_run_for_president(19))
print("Une personne de 45 ans peut-elle se présenter ?", can_run_for_president(45))
print(3.0 == 3) # True
print('3' == 3) # False
Sortie
Une personne de 19 ans peut-elle se présenter ? False Une personne de 45 ans peut-elle se présenter ? True True False
Un test utile : savoir si un nombre est impair :
def is_odd(n):
return (n % 2) == 1
print("100 est impair ?", is_odd(100))
print("-1 est impair ?", is_odd(-1))
Sortie
100 est impair ? False -1 est impair ? True
3) Combiner des booléens : and, or, not
On combine des conditions avec les mots-clés and, or et not.
def can_run_for_president(age, is_natural_born_citizen):
"""US : citoyen de naissance ET au moins 35 ans."""
return is_natural_born_citizen and (age >= 35)
print(can_run_for_president(19, True))
print(can_run_for_president(55, False))
print(can_run_for_president(55, True))
Sortie
False False True
Quiz rapide :
print(True or True and False)
Sortie
True
Pourquoi ? Parce que and est évalué avant or.
4) Priorité & parenthèses
Au lieu de mémoriser l’ordre de priorité, utilisez des parenthèses pour éviter les bugs et clarifier vos intentions.
Sans parenthèses :
prepared_for_weather = have_umbrella or rain_level < 5 and have_hood or not rain_level > 0 and is_workday
Mieux, lisible et correct :
prepared_for_weather = (
have_umbrella
or (rain_level < 5 and have_hood)
or (not (rain_level > 0 and is_workday))
)
5) Conditions : if, elif, else
Les booléens prennent tout leur sens dans des conditions.
def inspect(x):
if x == 0:
print(x, "est zéro")
elif x > 0:
print(x, "est positif")
elif x < 0:
print(x, "est négatif")
else:
print(x, "est… difficile à classifier")
inspect(0)
inspect(-15)
Sortie
0 est zéro -15 est négatif
Notez les deux-points : et l’indentation qui délimitent les blocs.
Un autre exemple montrant quelles lignes s’exécutent :
def f(x):
if x > 0:
print("Imprimé seulement si x est positif ; x =", x)
print("Encore dans le bloc positif ; x =", x)
print("Toujours imprimé ; x =", x)
f(1)
f(0)
Sortie
Imprimé seulement si x est positif ; x = 1 Encore dans le bloc positif ; x = 1 Toujours imprimé ; x = 1 Toujours imprimé ; x = 0
6) Conversion booléenne : bool(), valeurs truthy/falsey
Comme int() et float(), Python propose bool().
print(bool(1)) # tous les nombres ≠ 0 sont truthy
print(bool(0)) # 0 est falsey
print(bool("asf")) # toutes les chaînes non vides sont truthy
print(bool("")) # chaîne vide => falsey
Sortie
True False True False
Les valeurs falsey courantes : 0, 0.0, "", [], , set(), None.
Tout le reste est truthy.
On peut utiliser directement ces valeurs dans des conditions :
if 0:
print(0)
elif "spam":
print("spam")
Sortie
spam
🚀 Conclusion
Vous savez maintenant :
- manipuler le type bool et les opérateurs de comparaison,
- combiner des conditions avec and, or, not,
- gérer la priorité grâce aux parenthèses,
- écrire des conditions claires avec
if/elif/else, - et convertir vers booléen avec
bool()en comprenant truthy/falsey.