L'opérateur logique "not" en Python

L'opérateur not est un opérateur logique. Il fait partie des trois opérateurs logiques de Python avec and et or.

Cet opérateur retourne True si son opérande est faux, et False si son opérande est vrai. Nous pouvons dire qu'il inverse la valeur de vérité de l'expression qui le suit.

print("not True est:", not True)
print("not False est:", not False)
Un instant

On remarque que l'opérateur not transforme simplement une valeur vraie en fausse et vice-versa.

Utilisation avec les collections

Au-delà des booléens True et False, des objets peuvent être évalués comme truthy ou falsy. C'est notamment le cas pour les collections :

  • Une collection vide est considérée comme False

  • Une collection non vide est considérée comme True

L'opérateur not permet de vérifier si une collection est vide :

liste = [1, 2, 3]
if not liste:
    print("La liste est vide")
else:
    print("La liste n'est pas vide, elle contient:", liste)

# À noter qu'ici on pourrait simplifier le code en faisant l'inverse
if liste:
    print("La liste n'est pas vide, elle contient:", liste) 
else:
    print("La liste est vide")
Un instant

Attention

L'opérateur not a la précédence la plus élevée parmi les opérateurs logiques not, and et or. Il faut donc faire attention dans le cas où plusieurs expressions sont présentes, car not sera toujours évalué en premier.

Prenons cet exemple :

# Cette expression :
not True and False or True

# Est évaluée comme :
((not True) and False) or True

# Ce qui donne :
(False and False) or True  # = False or True = True

Si on veut modifier l'ordre d'évaluation :

not (True and False) or True  # = not False or True = True or True = True
not True and (False or True)  # = False and True = False

On remarque que cette règle de précédence suit la logique mathématique habituelle.

Bravo, tu es prêt à passer à la suite

Rechercher sur le site

Formulaire de contact

Inscris-toi à Docstring

Pour commencer ton apprentissage.

Tu as déjà un compte ? Connecte-toi.