web-dev-qa-db-fra.com

"Si non" déclaration de condition en python

if not start: 
   new.next = None 
   return new

que signifie "sinon"? Quand ce code sera-t-il exécuté?

est-ce la même chose que de dire si début == Aucun: alors faire quelque chose?

3
kaka

if est la déclaration. not start est l'expression, avec not étant un opérateur booléen) .

not renvoie True si l'opérande (start ici) est considéré comme false. Python considère que tous les objets sont vrais, à moins qu’ils ne soient zéro numérique ou un conteneur vide, ni l’objet None ou la valeur booléenne False. not renvoie False si start est une valeur vraie. Voir la section Test de la valeur de la vérité} _ section dans la documentation.

Donc, si start est None, alors effectivement not start sera vrai. start peut également être 0 ou une liste vide, une chaîne, un dictionnaire tuple ou un ensemble. De nombreux types personnalisés peuvent également spécifier qu'ils sont égaux à 0 ou doivent être considérés comme vides:

>>> not None
True
>>> not ''
True
>>> not {}
True
>>> not []
True
>>> not 0
True

Remarque: étant donné que None est un singleton (il n'y a qu'une seule copie de cet objet dans un processus Python), vous devez toujours le tester à l'aide de is ou is not. Si vous strictement voulez tester tat start est None, utilisez:

if start is None:
5
Martijn Pieters

Il s'exécute quand start est False, 0, None, une liste vide [], un dictionnaire vide {}, un ensemble vide ...

0
Pynchia