Table des matières
Variable booléenne
Boole
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.
Une expression vraie ou fausse
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 :
- “La porte est ouverte” – Il s'agit de l'information d'un capteur
- “La porte s'ouvre”
- “Ouvrir la porte” – Il s'agit plutôt d'un ordre donné au moteur
On pourrait dire aussi “Ouverture porte”
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.
En Python
Le type bool
- VRAI →
True, - FAUX →
False.
Le type des variables booléennes est bool.
>>> type(True) <class 'bool'> >>> type(False) <class 'bool'>
Transtypages
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
Les comparaisons
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 = 3signifie que l'on écrit la valeur3dans la variablea,a == 3signifie que l'on demande siaest égal à3et selon le cas, le résultat estTrueouFalse.
>>> 5 == 5 True >>> 3 + 2 == 5 True >>> "5" == 5 False >>> 5.0 == 5 True >>> 0 == False True
Remarques :
- il ne faut pas confondre le caractère
"5"qui est juste un symbole sans valeur numérique, et le nombre5, - pour le mathématicien, il est évident que
5.0 == 5mais c'est moins évident pour le programme :5.0et5sont stockés de façon très différentes dans la mémoire de l'ordinateur – cf cours entiers positifs et nombres flottants.
Comparaison, un opérateur comme un autre
>>> 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 :
- Les parenthèses forcent l'évaluation de
2 == 5dont le résultat estFalse - On calcule donc
3 + False. L'addition3 +provoque le changement deFalseen un entier,False→0. - On calcule donc
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.
