PaliSkill
Python pour débutants

Leçon 8 / 9 — Chapitre 2: Conditions et logique

Combiner des conditions complexes avec des parenthèses

Quand une condition combine à la fois and et or, l'ordre dans lequel Python les évalue peut ne pas correspondre à l'intention du développeur si aucune parenthèse ne vient clarifier les choses — exactement comme pour les opérateurs arithmétiques vus au chapitre précédent.

and est évalué avant or

age = 25
a_permis = True
a_voiture = False

resultat = age >= 18 and a_permis or a_voiture
print(resultat)

Sans parenthèses, Python évalue d'abord age >= 18 and a_permis (qui vaut True), puis True or a_voiture (qui vaut True) : le résultat final est True.

Rendre l'intention explicite avec des parenthèses

resultat = (age >= 18 and a_permis) or a_voiture
print(resultat)

Ce code produit exactement le même résultat que le précédent, mais les parenthèses rendent immédiatement visible quel groupe de conditions est évalué en premier — même quand ce n'est pas strictement nécessaire pour le résultat, cela évite une relecture difficile plus tard.

Un cas où les parenthèses changent réellement le résultat

a = False
b = True
c = False

print(a and (b or c))   # False
print((a and b) or c)   # False

Dans cet exemple précis les deux valent False, mais avec d'autres valeurs de a, b, c, le regroupement des parenthèses peut changer complètement le résultat final — la seule façon d'être certain du comportement voulu est de tester avec des valeurs différentes.

À vous de jouer : écrivez une condition combinant and et or avec des parenthèses, pour un scénario où un client bénéficie d'une réduction (par exemple : membre fidèle ET plus de 3 achats, OU montant supérieur à 200 $).

🔒

Continuez ce module

Débloquez les leçons restantes ainsi que la certification finale.

2 500 XOF / 3,81 € / 4,15 $

Débloquez les 90 leçons restantes de ce module

Votre paiement est vérifié avant l'activation de l'accès