Un booléen est un type de donnée à deux états, généralement notés en logique booléenne Vrai et Faux (True ,False)
Une expression conditionnelle, on dit aussi booléenne, permet d'écrire, par exemple, une condition portant sur les données d'un programme. On utilise pour cela les opérateurs de la logique booléenne dont les plus utilisés sont le ET, le OU et le NON.
Ces opérateurs sont parfaitement définis par leur table de vérité :
De même pour une expression booléenne :
Exemple (A ET B) OU (A ET C) a pour table de vérité :
Exercice
Etablir la table de vérité de l'expression Exp1 = (a ET (NON b)) OU ((NON a) ET b)
A quel opérateur connu cette table correspond-elle ?
Pour résumer, la table de vérité de notre expression est:
Il s'agit de la table de vérité du OU exclusif.
Les opérateurs ET et OU ont la particularité d'être séquentiels, c'est-à-dire de donner lieu à une évaluation de gauche à droite.
Lorsque l'interpréteur Python évalue une expression booléenne contenant des opérateurs and et or, il le fait de manière fainéante, en court-circuitant parfois l'expression à droite de l'opérateur logique. Ce qui se passe, c'est que parfois, en connaissant la valeur de l'expression à gauche de l'opérateur, peu importe celle de l'expression de droite, le résultat final peut déjà être connu. On parle aussi d'évaluation paresseuse des expressions logiques.
Exemple dans une recherche séquentielle, on aura un :
while i<n and t[i] != x: i = i + 1
Ici le programmeur utilise sa connaissance de l'évaluation de l'opérateur ET. Il sait que dans le cas où i<n est False, l'interpréteur n'essaie pas d'évaluer l'expression t[i] != x
Il faut savoir que Python associe la valeur False au cas suivants :
Pour les autres cas il associe la valeur True, comme par exemple :