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érationDescriptionOpérationDescription
a == ba égal à ba != ba différent de b
a < ba strictement inférieur à ba > ba strictement supérieur à b
a <= ba inférieur ou égal à ba >= ba 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.