logo

Les valeurs booléennes

Définition

Un booléen en logique et en programmation est un type de donnée à deux états. Les variables de ce type sont ainsi soit à létat vrai soit à l'état faux (en anglais true et false).

Généralement les conditions sont de type booléen, car elles nécessitent une réponse binaire du type oui ou non.

Les booléens en informatique

La plupart des langages utilise les nombres pour représenter des booléens : par exemple le 0 est faux et 1 est vrai, (en fait toute autre valeur que 0 est vrai, la convention n'est pas universelle).

Il est possible d'utiliser un unique bit en mémoire pour stocker une valeur booléenne.

On utilisera cette propriété pour écrire les nombres binaires. Au lieu de les écrire avec des 0 et des 1, on les écrira comme une suite de vrai ou de faux.

Opérations sur les booléens

On définit sur ces valeurs booléennes trois opérations :

Le NON logique

Le NON logique d'un booléen a se définit par :

a NON a
0 1
1 0
NON a vaut VRAI si et seulement si a vaut FAUX.
Cet opérateur peut également être défini par sa table de vérité présentée ci-contre.

Le ET logique

Le ET logique entre deux booléens a et b se définit par :

a b a ET b
0 0 0
0 1 0
1 0 0
1 1 1
a ET b vaut VRAI si et seulement si a vaut VRAI et b vaut VRAI
Cet opérateur peut également être défini par sa table de vérité présentée ci-contre.

Le OU logique

Le OU logique entre deux booléens a et b se définit par :

a b a OU b
0 0 0
0 1 1
1 0 1
1 1 1
a OU b vaut VRAI si et seulement si a vaut VRAI ou b vaut VRAI
Cet opérateur peut également être défini par sa table de vérité présentée ci-contre.


Le OU exclusif : XOR

Le OU exclusif logique entre deux booléens a et b se définit par :

a b a XOR b
0 0 0
0 1 1
1 0 1
1 1 0
a XOR b vaut VRAI si et seulement si a et b ont des valeurs distinctes.
Cet opérateur peut également être défini par sa table de vérité présentée ci-contre.


Les règles de priorité

Comme en mathématiques, il y a des règles de priorité dans les calculs de booléens. Voici l'ordre de priorité :
  1. Les parenthèses
  2. Le NON logique
  3. Le ET logique
  4. Le OU logique

Séquentialité

Les opérateurs and et or sont séquentiels en python. Cela signifie que le terme de droite n’est évalué que si le terme de gauche ne permet pas de trouver le résultat. On parle d'évaluation paresseuse.

Exemples

a=0
a!=0 and (0<1/a)
affichera :
False
Donc la deuxième opérande n'est pas évaluée.
En effet :
a=0
(0<1/a) and a!=0
affichera un message d'erreur :
Traceback (most recent call last): File “<pyshell#4>”, line 1, in <module> 
(0<1/a) and (a!=0) ZeroDivisionError: int division or modulo by zero

Convention d'écriture

On utilise les notations suivantes :

Exemples

Attention à ne pas inventer de règles
Pour plus d'infos, vous pouvez consulter Wikipédia