Outils pour utilisateurs

Outils du site


nsi:premiere:logique:booleens

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 = 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 :

  • il ne faut pas confondre le caractère "5" qui est juste un symbole sans valeur numérique, et le nombre 5,
  • pour le mathématicien, il est évident que 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.

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 == 5 dont le résultat est False
  • On calcule donc 3 + False. L'addition 3 + provoque le changement de False en un entier, False0.
  • 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.

nsi/premiere/logique/booleens.txt · Dernière modification : de goupillwiki