Vous avez vu que Python possède un type de variable de base appelé booléen ( bool
) : ces variables ne peuvent contenir que deux
valeurs possibles, True
( = Vrai ) ou False
( = Faux ).
Ce sont les variables qui permettent en Python d'utiliser la logique booléenne que vous avez déjà vue lors du chapitre sur les portes logiques; True
est l'équivalent de "1",
et False
de "0", mais la logique utilisée est la même !
Il y a de nombreuses situations en Python où ce type de variable trouvera son utilité, nous les verrons au fur et à mesure; pour l'instant, nous nous contenterons de manipuler des expressions dans lesquelles ces variables booléennes interviennent.
On peut directement initialiser une variable avec la valeur True
ou False
:
bool1 = True # attention, PAS DE GUILLEMETS, ce n'est pas une CHAÎNE DE CARACTÈRES...
bool2 = False
Qu'en faire ensuite ? Et bien, utiliser ces variables dans des expressions, dites expressions booléennes, car elles ne s'évaluent pas à une
valeur numérique, mais à True
ou False
uniquement
Bien entendu, les opérateurs utilisés dans ce type d'expressions ne sont donc pas les opérateurs mathématiques "habituels", mais ceux que vous avez utilisé dans le chapitre sur la logique booléenne :
and
( et )or
( ou )not
( non )Par analogie avec ce que vous connaissez déjà, établir les tables de vérité des 3 opérateurs précédents :
and
a |
b |
a and b |
---|---|---|
True |
True |
?
True |
True |
False |
?
False |
False |
True |
?
False |
False |
False |
?
False |
or
a |
b |
a or b |
---|---|---|
True |
True |
?
True |
True |
False |
?
True |
False |
True |
?
True |
False |
False |
?
False |
not
a |
not a |
---|---|
True |
?
False |
False |
?
True |
Prévoir ( puis vérifier ! ) la valeur des expressions booléennes suivantes :
a |
b |
c |
d |
Expression | Résultat |
---|---|---|---|---|---|
True |
True |
not ( a and b ) |
?
False |
||
True |
False |
True |
a or ( b and not c ) |
?
True |
|
False |
True |
True |
True |
(a and not b) or (not c and d) |
?
False |
Ok, il sera très rare que vous ayez besoin en Python d'expressions booléennes aussi complexes que les exemples précédents...
Par contre, d'autres expressions booléennes beaucoup plus utiles peuvent être évaluées en Python, voyez l'exemple ci-dessous :
Examinez le résultat affiché par les deux instructions print
aux lignes 2 et 3 : ce sont des valeurs booléennes !
En effet, les expressions a <= 100
et a > 30 and a < 35
ne sont pas des expressions arithmétiques, mais bien des expressions booléennes :
<=
est l'opérateur de comparaison signifiant "est inférieur ou égal à"; dans notre exemple, l'expression a <= 100
s'évalue donc effectivement à True
.>
et <
signifient respectivement "est strictement supérieur à" et "est strictement inférieur à"; comme ici, a est supérieur à 30 ET n'est PAS inférieur à 35, l'expression a > 30 and a < 35
s'évalue donc à False
.Opérateur | Signification | Commentaire |
---|---|---|
== |
égal à | ATTENTION : il s'agit bien d'un DOUBLE signe "égal"... C'est une erreur classique de ne mettre qu'un seul "égal", qui est l'instruction d'affectation ( qui est donc, elle, toujours vraie !!! ) |
!= |
différent de | |
> |
strictement supérieur à | |
< |
strictement inférieur à | |
>= |
supérieur ou égal à | |
<= |
inférieur ou égal à | |
in |
présent dans | C'est l'opérateur qui permet de tester l'appartenance d'un élément à un autre, par exemple un caractère particulier dans une chaîne, un élément dans un fichier ou une liste,...de manière générale, un élément dans une structure itérable. |
not in |
pas présent dans | C'est l'opérateur inverse, celui qui permet de tester l'absence d'un élément dans une structure itérable. |
Ces opérateurs de comparaison peuvent être utilisés avec des nombres entiers, des flottants ( avec précaution !! ), des chaînes de caractères ( dans ce cas, c'est l'ordre alphabétique qui sert de critère de comparaison ).
Vous retrouverez ces opérateurs dans l'évaluation des conditions dans un prochain chapitre.
Que s'affiche-t-il après exécution des scripts suivants ?