Falsy et truthy#

Expressions après un if#

Jusqu’ici les expressions qu’on a utilisé donnait un booléen une fois évaluées, mais une expression après un if peut être d’un autre type.

Par exemple, un entier :

x = 0
if x:
    print("x n'est pas nul")
else:
    print("x est nul")

# affiche: x est nul

On dit que 0 est Falsy, parce qu’après un if, il se comporte comme une expression qui vaudrait False.

Réciproquement, tous les entiers sauf 0 sont Truthy, parce qu’ils se comportent comme une expression qui vaudrait True :

y = 6
if y:
    print("y n'est pas nul")
else:
    print("y est nul")

# affiche: y n'est pas nul

On retrouve ce principe avec les chaînes de caractères :

message = ""
if message:
    print("le message n'est pas vide")
else:
    print("le message est vide")
# affiche: le message est vide

Les chaînes vides sont falsy, les autres sont truthy.

Expressions quelconques#

En fait, on peut utiliser tous les opérateurs booléens avec des expressions quelconques :

message = ""
if not message:
    print("le message est vide")
# affiche: le message est vide


score = 42
if message and score:
    print("le message et le score sont truthy")
# affiche: le message et le score sont truthy