Tutoriel Python : tout savoir sur le type Boolean
Rédigé par Kaoutar OUAZZINE, Publié le 18 Octobre 2020, Mise à jour le Samedi, 14 Novembre 2020 21:59
Table des matières
I. Introduction
- Les opérateurs de comparaison
- Les opérateurs de comparaison chaînés
- Les opérateurs d’appartenance in & not in
- Les opérateurs logiques And & Or
- Les opérateurs d’identité
- Autres opérateurs
V. Conclusion
I. Introduction
Parmi les types de données, il y a les nombres notamment les entiers, les flottants et les complexes, et il existe aussi les chaînes de caractères. On verra dans cet article un troisième type de données à savoir : les booléens. Ces derniers ont deux valeurs possibles : TRUE et FALSE, le principal avantage de ce type est la possibilité de la prise de décision tout en mentionnant les conditions à remplir ou non dans un programme.
II. Définir le type booléen
Le résultat du calcul d'une expression booléenne << logique >> est vrai ou faux. Python offre un type booléen défini sur False ou True. Il existe plusieurs fonctions même des opérations qui retournent des objets booléens. On peut également vérifier si l’objet est un booléen ou non avec la fonction type.
Exemple
- Code :
variable = False
print(variable)
print(type(variable))
- Résultat d’exécution :
Il est possible d’inverser le type booléen en utilisant le mot clé not.
Exemple
- Code :
variable = False
not variable
- Résultat d’exécution :
Pour travailler avec le type booléen il faut distinguer entre les éléments considérés True et ceux considérés comme False :
TRUE |
FALSE |
True |
False |
1 |
|
Un nombre soit positif ou négatif |
None (Aucun) |
Une chaine non vide |
Une chaîne vide |
Une liste non vide |
Une liste vide |
Un dictionnaire non vide |
Un dictionnaire vide |
III. Manipuler les booléens
1. Les opérateurs de comparaison
Le tableau suivant indique les divers opérateurs de comparaison :
OPÉRATION |
DESCRIPTION |
X == Y |
X est égale à Y |
X != Y |
X est différent de Y |
X > Y |
X est supérieur strictement à Y |
X < Y |
X est inférieure strictement à Y |
X >= Y |
X est supérieur ou égale à Y |
X <= Y |
X est inférieur ou égale à Y |
Exemple
- Code :
#vérifier si x=2 et y=4 sont égaux
print(2==4)
#vérifier si x=2 et y=4 ne sont pas égaux
print(bool(2!=4))
#vérifier si x=2 est strictement supérieur à y=4
print(2>4)
#vérifier si x=2 est strictement inférieur à y=4
print(2<4)
#vérifier si x=2 est supérieur ou égale à y=4
print(bool(2>=4))
#vérifier si x=2 est inférieur ou égale à y=4
print(2<=4)
- Résultat d’exécution :
En fait, les variables sont utilisées plus souvent. Par exemple, si nous nous donnons un entier i, nous voulons connaître 2i + 1?100. En Python, nous écrirons :
Exemple
- Code :
print(2*i+1 >= 100)
i=50
print(2*i+1 >= 100)print(2 == x < 5)
Résultat d’exécution :
2. Les opérateurs de comparaison chaînés
Il est possible que les opérateurs de comparaison soient chaînés, comme illustré dans l’exemple suivant :
Exemple
- Code :
x = 5
print(1 < x < 10)
print(10 < x < 30)
print(1 > x <= 2)
print(2 == x < 5) print('demain' not in 'demain il va faire beau')
Résultat d’exécution :
Faites une comparaison entre chaque couple de termes à traiter. Par exemple, dans notre exemple, 1 <x est traité comme Vrai et x <5 est évalué. Le programme n’a pas travaillé comme si 1 <x est égale à True, et <10 est égal à True! Chaque terme doit être évalué une seule fois.
3. Les opérateurs d’appartenance in & not in
Si les variables sont trouvées dans l'ordre exacte, in vaut True, sinon il est Faux.
Si la variable est trouvée dans la séquence, le résultat de not in est False, sinon c'est True.
Exemple
- Code :
print('demain' in 'demain il va faire beau')
print('demain' not in 'demain il va faire beau')
- Résultat d’exécution :
4. Les opérateurs logiques And & Or
Le traitement avec des opérateurs logiques And et Or suit les règles suivantes :
ü Les opérateurs And / Or permettent de traiter les expressions de gauche à droite.
ü L’opérateur And permet, dans le cas où toutes les valeurs sont True, de retourner la dernière valeur traitée. Dans un autre cas, il permet de retourner a première valeur si la valeur est False.
ü L’opérateur Or permet de retourner la première valeur de True. Or, si tout est faux, la dernière valeur est retournée.
Exemple
- Code :
nom = input("Quel est votre nom? ")
mdp = input("Quel est le mot de passe? ")
if nom == "Kaoutar" and mdp == "One":
print("Bienvenue Kaoutar")
elif nom == "Hiba" and password == "Two":
print("Welcome Hiba")
else:
print("Utilisateur non reconnu")
- Résultat d’exécution :
Il faut noter que l’opérateur And est plus prioritaire que l’opérateur Or, prenons cet exemple :
Exemple
- Code :
True and False or True
- Résultat d’exécution :
Parce que et a une priorité plus supérieure, le premier niveau est "True and False", qui est, bien sûr, toujours False. Par conséquent, la deuxième évaluation devient "False Or True", ce qui a pour résultat True. Parfois, il est plus facile d’utiliser des crochets pour être sûr d’écrire ce que vous voulez dire :
Exemple
- Code :
(True and False) or True
- Résultat d’exécution :
Pour mieux comprendre le fonctionnement de ces opérateurs logiques voyez les tableaux suivants :
AND
EXPRESSION |
RÉSULTAT |
True and true |
True |
True and false |
False |
False and true |
False |
False and false |
False |
OR
EXPRESSION |
RÉSULTAT |
True and true |
True |
True and false |
True |
False and true |
True |
False and false |
False |
5. Les opérateurs d’identité
Si les variables des deux côtés de l'opérateur pointent vers un même objet, l’opérateur dans ce premier cas vaut True, sinon il vaut False. Si les variables des deux côtés de l'opérateur pointent vers un même objet, ce n'est pas False dans ce deuxième cas, sinon c'est True pour le cas opposé.
Exemple
- Code :
p = 'hello'
p_id = p
p_id is p
- Résultat d’exécution :
6. Autres opérateurs
Le tableau suivant montre l'ordre d'évaluation du plus élevé au plus bas des opérateurs :
OPÉRATEURS |
DESCRIPTIONS |
(), [], {}, ‘’ |
Un tuple, une liste, un dictionnary, string |
X.ATTR, X[], X[I:J], F() |
Un attribut, un index, slide, un appel de fonction |
+X, -X, ~X |
Une négation unaire, inversion au niveau du bit |
** |
Un exposant |
*, /, % |
Une multiplication, une division, un modulo |
+, - |
Une addition, une substraction |
<<, >> |
Un décalage au niveau du bit |
& |
Opérateur And au niveau du bit |
^ |
Opérateur Xor au niveau du bit |
&& |
Opérateur Or au niveau du bit |
<, <=, >=, >, ==, != |
Les opérateurs de comparaison |
IS, IS NOT |
Les opérateurs d’identité |
IN, NOT IN |
Les opérateurs d’appartenance |
NOT |
Booléen NON |
AND |
Booléen ET |
OR |
Booléen OU |
LAMBDA |
L’expression de lamnda |
IV. Exercices d’application
1. Exercice 1
a) Enoncé
Le code suivant vérifie si le nombre passé à la fonction booléenne est divisible par 3. Si la valeur est divisible par 3, elle renvoie true, sinon elle renvoie false.
b) Corrigé
Code :
x=6
if(bool(x%3==0)):
print(x,"est divisible par 3")
else:
print(x,"n'est pas divisible par 3")
Résultat d’exécution :
Résultat d’exécution :
2. Exercice 2
a) Enoncé
Écrir un programme qui permet de deviner votre nom en seulement trois chances.
b) Corrigé
Code :
print("Devinez mon nom !")
comptage = 1
nom = "kaoutar"
devine = input("Quel est mon nom? ")
while comptage < 3 and devine.lower() != nom: # .lower permet ici de ne pas considérer les majuscules dans le nom
print("Nom incorrect !")
devine = input("Quel est mon nom? ")
comptage = comptage + 1
if devine.lower() != nom:
print("Nom incorrect !")
print("Vous avez terminez vos chances")
else:
print("Correct ! Vous avez devinez mon nom"), nom + "!"
Résultat d’exécution :
3. Exercice 3
a) Enoncé
Ecrire un programme qui teste si un nombre est premier ou pas.
b) Corrigé
Code :
while i < nombre and nombre % i != 0 :
i = i + 1
if i == nombre :
print('Le nombre', nombre, 'est premier ! Fantastique !')
else :
print('Ce n\'est pas un nombre premier.')
Résultat d’exécution :
V. Conclusion
Pour conclure, le type de données bool sert à stocker deux valeurs : True et False. Ce type permet de traiter un programme et de vérifier si le résultat retourné du programme est vrai ou faux. Dans ce tutorial on a pu définir le type booléen en python et de manipuler ce dernier par plusieurs opérateurs dont la fonctionnalité diffère, tout en concrétisant les explications par des exemples. Et enfin, plusieurs exercices ont été mis en place pour appliquer le cours et pour pouvoir avancé dans la programmation en langage python.