Un booléen ne prend que deux valeurs : vrai ou faux, notées 1 et 0 en électronique, True et False en Python. Les conditions des if et des while sont des expressions booléennes, et les circuits du processeur sont construits à partir des opérateurs logiques. Savoir les manipuler est donc indispensable.

Une question sur ce cours ?
ULU, le tuteur d’ULUMINE, t’aide à partir de ce cours.
Objectifs
- Connaître les opérateurs not, and, or et le ou exclusif (xor)
- Dresser la table de vérité d’une expression booléenne
- Écrire et simplifier des conditions en Python (lois de De Morgan)
- Comprendre l’évaluation séquentielle (paresseuse) de and et or
1. Valeurs et opérateurs booléens
Booléen : Une valeur booléenne vaut True (vrai, 1) ou False (faux, 0). En Python, les comparaisons (==, !=, <, <=, >, >=) renvoient un booléen : 3 < 5 vaut True.
| a | b | not a | a and b | a or b | a xor b |
|---|---|---|---|---|---|
| 0 | 0 | 1 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 | 1 | 1 |
| 1 | 0 | 0 | 0 | 1 | 1 |
| 1 | 1 | 0 | 1 | 1 | 0 |
- not a (non) : inverse la valeur.
- a and b (et) : vrai seulement si les deux sont vrais.
- a or b (ou) : vrai si au moins l’un des deux est vrai.
- a xor b (ou exclusif) : vrai si exactement l’un des deux est vrai. En Python, sur des booléens : a ^ b, ou encore a != b.
2. Tables de vérité d’une expression
Avec n variables, une table de vérité a 2ⁿ lignes : 4 lignes pour 2 variables, 8 pour 3 variables. On ajoute une colonne par sous-expression.
Table de (a or b) and not c, pour a = 1
- a = 1, b = 0, c = 0 : a or b = 1 ; not c = 1 ; résultat 1.
- a = 1, b = 0, c = 1 : a or b = 1 ; not c = 0 ; résultat 0.
- a = 1, b = 1, c = 0 : résultat 1.
- a = 1, b = 1, c = 1 : résultat 0.
On complète de la même manière les 4 lignes où a = 0 (8 lignes en tout).
3. Évaluation séquentielle en Python
Python évalue a and b de gauche à droite : si a est faux, le résultat est faux et b n’est pas évalué. De même, dans a or b, si a est vrai, b n’est pas évalué. On parle d’évaluation paresseuse (ou séquentielle).
x = 0
if x != 0 and 10 / x > 1: # pas d'erreur : 10 / x n'est jamais calculé
print("grand")
if 10 / x > 1 and x != 0: # ZeroDivisionError !
print("grand")4. Une application : l’addition binaire
Pour additionner deux bits a et b, le demi-additionneur calcule la somme s = a xor b et la retenue r = a and b. Exemple : 1 + 1 = 10 en binaire, donc s = 0 et r = 1. En enchaînant de tels circuits, le processeur additionne des nombres de plusieurs bits.
| a | b | s = a xor b | r = a and b |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 1 |
À retenir
- Un booléen vaut True ou False ; les comparaisons renvoient des booléens.
- and : vrai si les deux sont vrais ; or : vrai si au moins un est vrai ; xor : vrai si exactement un est vrai.
- Une table de vérité à n variables a 2ⁿ lignes.
- De Morgan : not (a and b) = not a or not b ; not (a or b) = not a and not b.
- and et or sont évalués de gauche à droite et s’arrêtent dès que le résultat est connu.

Et maintenant, à toi !
Vérifie que tu as compris avec les exercices, puis révise avec la fiche.