George Boole, (1815, 1864), est un mathématicien britannique. Il est le créateur de la logique moderne que l'on appelle algèbre de Boole en son honneur. Il crée une algèbre binaire, dite booléenne, n'acceptant que deux valeurs numériques : 0 et 1. Cette algèbre est particulièrement utile en informatique.
Un booléen est soit VRAI soit FAUX.
Exemple : On considère un système de porte automatique. Le système peut faire usage d'expressions comme celles-cis :
De toutes ces expressions, on peut dire qu'elles sont vraies ou fausses.
On comprend sans ambiguïté ce que signifie “Ouvrir porte VRAI”.
Contre-exemple : 4 + 5 * 7 est un nombre, “4 + 5 * 7 VRAI” n'a aucun sens.
True,False.
Le type des variables booléennes est bool.
>>> type(True) <class 'bool'> >>> type(False) <class 'bool'>
Certaines données, non booléennes, peuvent êtes interprétées comme booléennes si on le demande.
>>> bool("bbb")
True
>>> bool(0)
False
>>> bool(1)
True
>>> bool(54)
True
En général, les booléens sont obtenus par des expressions comme des comparaisons :
a == b # a est égal à b a != b # a est différent de b a <= b # a est inférieur ou égal à b a < b # a est strictement inférieur à b a > b # a est strictement supérieur à b a >= b # a est supérieur ou égal à b
Ne pas confondre :
a = 3 signifie que l'on écrit la valeur 3 dans la variable a,a == 3 signifie que l'on demande si a est égal à 3 et selon le cas, le résultat est True ou False.>>> 5 == 5 True >>> 3 + 2 == 5 True >>> "5" == 5 False >>> 5.0 == 5 True >>> 0 == False True
Remarques :
"5" qui est juste un symbole sans valeur numérique, et le nombre 5,5.0 == 5 mais c'est moins évident pour le programme : 5.0 et 5 sont stockés de façon très différentes dans la mémoire de l'ordinateur – cf cours entiers positifs et nombres flottants.>>> 3 + 2 == 5 True >>> 3 + (2 == 5) 3
La première expression semble aller de soi. On fait évidemment le calcul 3 + 2 avant de tenter la comparaison. Mais alors quel est le sens de la deuxième expression ? Ne devrait-on pas avoir une erreur ?
== est interprété comme un symbole de calcul. Voici la séquence :
2 == 5 dont le résultat est False3 + False. L'addition 3 + provoque le changement de False en un entier, False → 0.3 + 0, d'où le résultat.Ces transformations automatiques permettent des astuces et des raccourcis parfois très pratiques. Mais mieux vaut ne pas en abuser si on veut garder un code suffisamment lisible.