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