Introduction
Dans la plupart des programmes informatiques, il est nécessaire de faire des choix, de tester des conditions ou de répéter des actions selon un critère. Ces décisions s'appuient sur une logique fondamentale : celle des valeurs booléennes, limitées à deux états, « vrai » et « faux ». Leur nom provient du mathématicien britannique George Boole, fondateur de l'algèbre binaire utilisée en informatique. À travers des opérateurs logiques simples comme and, or ou not, les expressions booléennes permettent de construire des raisonnements clairs et rigoureux, essentiels à la programmation.
Les valeurs booléennes : vrai ou faux
En Python, les deux valeurs booléennes sont représentées par les constantes :
Truepour « vrai »Falsepour « faux »
Elles appartiennent au type bool :
type(True) # Python permet d'utiliser ces valeurs dans des opérations arithmétiques simples :
int(True) # 1
int(False) # 0Ainsi, on peut faire :
True + True # 2
False * 5 # 0Cette double nature logique et numérique est propre au langage Python.
À retenir
Les booléens représentent deux états logiques :
TrueetFalse. En Python, ils peuvent aussi être utilisés comme les entiers 1 et 0.
Les opérateurs logiques en Python
Les opérateurs logiques permettent de combiner des valeurs booléennes pour former des expressions complexes.
and : conjonction logique (ET)
L’expression A and B est vraie si A et B sont vrais tous les deux.
A | B | A and B |
|---|---|---|
True | True | True |
True | False | False |
False | True | False |
False | False | False |
or : disjonction logique (OU)
L’expression A or B est vraie si au moins l’un des deux est vrai.
A | B | A or B |
|---|---|---|
True | True | True |
True | False | True |
False | True | True |
False | False | False |
not : négation
L’expression not A est vraie si A est faux, et inversement.
A | not A |
|---|---|
True | False |
False | True |
À retenir
Les opérateurs
and,oretnotpermettent de construire des expressions booléennes à partir de conditions simples. Ils obéissent à des règles strictes décrites par leurs tables de vérité.
Tables de vérité et expressions composées
Une expression booléenne est une combinaison de conditions qui renvoie une valeur True ou False. Pour prédire son résultat dans tous les cas possibles, on utilise une table de vérité.
Exemple : expression composée
Étudions l’expression :
(A and not B) or (not A and B)Cette expression représente le ou exclusif (XOR). Voici sa table de vérité complète :
A | B | not A | not B | A and not B | not A and B | (A and not B) or (not A and B) |
|---|---|---|---|---|---|---|
True | True | False | False | False | False | False |
True | False | False | True | True | False | True |
False | True | True | False | False | True | True |
False | False | True | True | False | False | False |
On vérifie que le résultat final est True si une seule des deux variables est vraie.
À retenir
Dresser une table de vérité permet de comprendre et vérifier le fonctionnement d’une expression logique. C’est un outil fondamental de l’algorithmique.
Court-circuit logique et évaluation séquentielle
En Python, les opérateurs and et or sont paresseux : ils ne calculent pas la deuxième partie si le résultat peut être déterminé dès la première.
Exemple : and
x = 0
x != 0 and (1 / x > 0)Ici, x != 0 est False. Python ne tente même pas de calculer 1 / x, ce qui évite une division par zéro.
Exemple : or
True or print("Jamais exécuté")La fonction print n’est jamais appelée, car True or ... vaut toujours True.
Ce comportement permet de protéger certains calculs :
if x != 0 and y / x > 1:
...À retenir
Les opérateurs
andetorévaluent les expressions de gauche à droite. Si le résultat est déjà connu, Python ignore la suite : c’est le court-circuit logique.
Applications en algorithmique
Les booléens sont utilisés dans toutes les structures de contrôle :
Conditions
if age >= 18 and pays == "France":
print("Majeur en France")Boucles
while not terminé:
...Sélections dans les structures de données
notes = [14, 8, 18, 10]
admis = [note for note in notes if note >= 10]Évaluation d’un XOR
Python ne propose pas d’opérateur logique xor, mais on peut utiliser :
A != B # True si une seule des deux valeurs est vraieL’opérateur ^, bien qu’il fonctionne entre deux booléens en Python, est un opérateur binaire (bit à bit) : son emploi doit être signalé comme une spécificité du langage.
À retenir
Les expressions booléennes permettent de contrôler l’exécution d’un programme. Elles sont indispensables dans les tests conditionnels, les boucles et les filtres.
Conclusion
Les valeurs booléennes et leurs opérateurs logiques constituent l’un des fondements de la pensée algorithmique. Grâce à eux, on peut exprimer des conditions complexes, structurer le raisonnement d’un programme et prendre des décisions automatisées. La maîtrise des expressions booléennes, des tables de vérité et du court-circuit logique permet d’écrire du code plus clair, plus sûr et plus efficace. Ces bases sont partagées par tous les langages de programmation modernes et reposent sur les principes rigoureux de l’algèbre de Boole.
