Vidéo 13 : Les booléens

\(\newcommand{\ds}{\displaystyle}\) \(\newcommand{\Frac}{\ds\frac}\) \(\renewcommand{\r}{\mathbb{ R}}\) \(\newcommand{\C}{\mathbb{ C}}\) \(\newcommand{\n}{\mathbb{ N}}\) \(\newcommand{\z}{\mathbb{ Z}}\) \(\newcommand{\Q}{\mathbb{ Q}}\) \(\newcommand{\N}{\mathbb{ N}}\) \(\newcommand{\n}{\mathbb{ N}}\) \(\newcommand{\ol}{\overline}\) \(\newcommand{\abs}[1]{\left| \,{#1} \right|}\) \(\newcommand{\pv}{\;;\;}\) \(\newcommand{\ens}[1]{\left\{ {#1} \right\}}\) \(\newcommand{\mens}[1]{\setminus\left\{ {#1} \right\}}\) \(\newcommand{\Par}[1]{\left({#1}\right)}\)

Vidéo 13 : Les booléens

Les booléens en Python

Les valeurs de vérité Vrai et Faux en Python sont représentées par deux constantes du langage :

  • True pour Vrai
  • False pour Faux

True et False sont des mots-clés du langage Python 3. Les booléens True et False appartiennent, comme les entiers ou les flottants, à un type, le type bool.

Opérateurs de comparaison et booléen

Certaines expressions ont pour valeur des booléens. C’est le cas, par exemple, de toute expression représentant une comparaison. Par exemple, l’expression Python 42 > 45 vaut False :

1
2
print(42 > 45)
print(42 == 40 + 2)
3
4
False
True
  • Lignes 3-4 : l’assertion « 42 est strictement supérieur à 45 » vaut False.
  • Ligne 1 : l’assertion « 42 a même valeur que 40 + 2 » vaut True (elle est vraie).

Voici un exemple d’utilisation :

1
2
3
n = 5 * 12 + 6 ** 3 - 42 + 17
print(n > 256)
print(n)
4
5
False
251
  • Ligne 1 : n est un entier dont la valeur explicite n’apparaît pas dans le code.
  • Ligne 2 : On teste pour savoir si l’entier n est plus grand que 256.
  • Ligne 4 : On lit que non (cf. False), n n’est pas plus grand que 256.
  • Lignes 3 et 5 : le calcul explicite de n confirme que l’assertion n > 256 est fausse.

En pratique, les comparaisons utilisent souvent des variables. Par exemple, on se donne un entier k et on cherche à savoir si \(\mathtt{2k+1\geq 100}\). En Python on écrira :

1
2
3
4
5
k=10
print(2*k+1 >= 100)

k=60
print(2*k+1 >= 100)
6
7
False
True

Opérateurs logiques ET, OU et NON

Les notions d”assertion logique et d”opérateur logique existent indépendamment de tout langage de programmation. L’énoncé \(2k+1 \geq 100\)\(k\) est un entier, est un exemple d’assertion logique (elle est vraie ou fausse selon la valeur de \(k\), vraie si \(k=60\), fausse si \(k=25\)).

L’opérateur ET

À partir de deux propositions logiques p et q, on peut former la proposition logique p ET q. Par exemple, si on a les deux propositions logiques :

p : 5 > 3, q : 4 > 7

alors

  • p est vraie
  • q est fausse
  • p ET q est une proposition fausse.

Règle : p ET q est vraie uniquement si p est vraie et si q est également vraie.

Cette règle est conforme à l’usage habituel de la conjonction de coordination ET.

Voici donc la table de vérité de l’opérateur ET :

p q p ET q
Vrai Vrai Vrai
Vrai Faux Faux
Faux Vrai Faux
Faux Faux Faux

Ne pas accorder trop d’importance à cette table, en pratique assez peu utile. Une expression de la forme p ET q s’appelle une conjonction et p et q s’appellent les opérandes de la conjonction.

La notion d’opérateur OU

À partir de deux propositions logiques p et q, on peut former la proposition logique p OU q. Par exemple, si

p : 5 > 3, q : 4 > 7

alors :

  • p est vraie
  • q est fausse
  • p OU q est une proposition vraie.

Règle : p OU q est fausse uniquement si p est fausse et si q est également fausse.

Une expression de la forme p OU q s’appelle une disjonction. Les assertions p et q s’appellent les opérandes de la disjonction.

Voici la table de vérité de l’opérateur OU :

p q p OU q
Vrai Vrai Vrai
Vrai Faux Vrai
Faux Vrai Vrai
Faux Faux Faux

Ne pas accorder trop d’importance à cette table, en pratique assez peu utile.

Le OU est non exclusif

Le OU logique n’a pas valeur exclusive comme dans fromage ou dessert et qui signifie

soit fromage soit dessert mais pas les deux.

Autrement dit, dès que l’une des deux assertions p ou q sont les deux vraies alors l’assertion p OU q est vraie.

Par exemple, si

p : 5 > 3, q : 4 < 7

alors :

  • p est vraie,
  • q est vraie,
  • la proposition p OU q est vraie.

L’opérateur logique NON

La proposition NON p est la négation de p. Si

p : 5 > 3

alors :

  • p est vraie
  • NON p est fausse.

Règle : toute proposition logique p admet une négation q, notée NON p. La valeur logique de q est

  • vraie si p est fausse,
  • fausse si p est vraie.

Opérateurs and, or et not

L’opérateur logique ET est représenté en Python par le mot-clé et opérateur and :

1
2
3
4
5
p = (5 > 3)
q = (4 > 7)
print(p)
print(q)
print(p and q)
6
7
8
True
False
False
  • Lignes 5 et 8 : p and q vaut False puisque q vaut False.

L’opérateur logique OU est représenté en Python par le mot-clé et opérateur or.

1
2
3
4
5
p = (5 > 3)
q = (4 > 7)
print(p)
print(q)
print(p or q)
6
7
8
True
False
True
  • Lignes 5 et 8 : p or q vaut True puisque p vaut True.

L’opérateur NON est représenté en Python par le mot-clé et opérateur not.

1
2
3
4
5
p = (5 == 2 + 3)
print(p, not p)

q = (3 > 4)
print(q, not q)
6
7
True False
False True