Les booléens en Python - Docstring

Les booléens en Python

Un booléen est un type natif de Python qui n'a que deux valeurs possibles : True ou False.

Les booléens sont un sous-type du type natif des nombres entiers :

#norun
issubclass(bool, int)  # True

Le booléen True est donc similaire au nombre 1 et le booléen False au nombre 0.

Il est ainsi possible de réaliser des opérations mathématiques entre un booléen et un entier :

print(True + 1)
print(True - 1)
print(False + 1)
print(False - 1)
print(True * 5)
print(False * 5)
print(True ** 4)

Cela peut sembler inutile, mais c'est très pratique si vous devez par exemple établir un compteur qui se base sur le résultat d'une expression qui résulte sur un booléen.

Par exemple, le code suivant :

utilisateur_inscrit = True
nombre_utilisateurs = 0
if utilisateur_inscrit:
    nombre_utilisateurs += 1

print(nombre_utilisateurs)

Peut être simplifié de la sorte, sans la structure conditionnelle :

utilisateur_inscrit = True
nombre_utilisateurs = 0

nombre_utilisateurs += utilisateur_inscrit
print(nombre_utilisateurs)

Tous les objets de Python peuvent être évalués comme des booléens.

Pour évaluer (ou convertir) un objet en tant que booléen, on utilise la classe bool :

print(bool("Bonjour"))
print(bool(1))
print(bool([]))
print(bool((1, 2, 3)))
print(bool({1: "un", 2: "deux"}))

Tous les types natifs possèdent par défaut une valeur qui est évaluée comme False, toutes les autres étant évaluées comme True.

Par exemple, tous les types natifs « vides » seront évalués comme False :

print(bool(""))
print(bool([]))
print(bool(()))
print(bool({}))

Pour d'autres objets, ce seront des valeurs spécifiques, comme le 0 pour les nombres entiers, 0.0 pour les nombres décimaux ou encore le mot clé None :

print(bool(0))
print(bool(0.0))
print(bool(None))

Toutes les autres valeurs de ces types retourneront True quand vous les passez à la classe bool.

Il est possible d'implémenter la méthode spéciale __bool__ pour définir le comportement d'un objet avec la classe bool :

#norun
class Person:
    def __init__(self, prenom, nom, age):
        self.prenom = prenom
        self.nom = nom
        self.age = age

    def __bool__(self):
        return self.age >= 18

patrick = Person(prenom="Patrick", nom="Michaud", age=14)
john = Person(prenom="John", nom="Tremblay", age=20)

print(bool(patrick))  # False car Patrick a moins de 18 ans
print(bool(john))     # True car Patrick a plus de 18 ans

 

Réservé aux membres abonnés

Inscris-toi

Pour pouvoir prendre des notes et ajouter des favoris tu dois être abonné à Docstring.

Voir les formules

Mes notes

Sauvegardé

Passages surlignés

Besoin d'aide ?

Essaie d'être le plus exhaustif possible en donnant suffisamment de détails pour qu'on puisse te répondre du premier coup 😉

Tu peux également visionner cette vidéo dans laquelle je t'explique comment poser ta question correctement et utiliser l'éditeur.

Tu souhaites nous remonter un bug ? Utilise-plutôt ce formulaire.

Cette fonctionnalité est réservée aux membres de la formule accompagnement de Docstring.

Aucun résultat.

Un problème sur le site ?

Aide-nous à améliorer Docstring en nous signalant un problème que tu as rencontré.

Que ce soit un bug sur une fonctionnalité ou une erreur dans une formation, on va pouvoir le corriger rapidement 😉

Page concernée

M'avertir par e-mail

Je veux être averti par e-mail lorsque ce bug est corrigé.