La valeur de retour de l'opération booléenne Python n'est pas toujours de type booléen

Ce n'est pas seulement le type booléen qui peut effectuer des opérations booléennes en Python, et la valeur de retour n'est pas nécessairement le type booléen.

Pour vérifier la valeur de vérité d'un objet bool ():


>>> bool(123)
True
>>> bool([1,2,3])
True
>>> bool('abc')
True
>>> bool({'a':1, 'b':2, 'c':3})
True
>>> bool((1,2,3))
True

>>> bool(0)
False
>>> bool([])
False
>>> bool('')
False
>>> bool({})
False
>>> bool(())
False
>>> bool(None)
False

and Renvoie l'objet droit si la valeur de vérité de l'objet gauche est vraie:


>>> True and True
True
>>> [1,2,3] and 'abc'
'abc'
>>> 'abc' and [1,2,3]
[1, 2, 3]

>>> True and False
False
>>> [1,2,3] and ''
''
>>> 'abc' and []
[]

Renvoie l'objet gauche si la valeur de vérité de l'objet gauche est fausse:


>>> False and True
False
>>> [] and 'abc'
[]
>>> '' and [1,2,3]
''

>>> False and False
False
>>> [] and ''
[]
>>> '' and []
''

or

Renvoie l'objet gauche si la valeur de vérité de l'objet gauche est vraie:

>>> True or True
True
>>> [1,2,3] or 'abc'
[1, 2, 3]
>>> 'abc' or [1,2,3]
'abc'

>>> True or False
True
>>> [1,2,3] or ''
[1, 2, 3]
>>> 'abc' or []
'abc'

Renvoie l'objet droit si la valeur de vérité de l'objet gauche est false:

>>> False or True
True
>>> [] or 'abc'
'abc'
>>> '' or [1,2,3]
[1, 2, 3]

>>> False or False
False
>>> [] or ''
''
>>> '' or []
[]

not Renvoie uniquement le type booléen. Faux: si la valeur de vérité de l'objet est vraie


>>> not True
False
>>> not [1,2,3]
False
>>> not 'abc'
False

Vrai si la valeur de vérité de l'objet est fausse:


>>> not False
True
>>> not []
True
>>> not ''
True

Recommended Posts

La valeur de retour de l'opération booléenne Python n'est pas toujours de type booléen
Les opérations booléennes python ne renvoient pas de valeurs booléennes
[Python] L'opérateur booléen (ou / et) ne renvoie pas de valeur booléenne
mémo python utilisant perl - type de dictionnaire (casse non valide)
Le rond de Python n'est pas strictement rond
le type de booléen pypy est lent
Que faire lorsque le type de valeur est ambigu en Python?
[python] week1-3: Type de nombre et opération
python Remarque: lorsque easy_install ne peut pas être utilisé
[Python] Erreur de nom: le nom'urlparse 'n'est pas défini
[python] [meta] Le type de python est-il un type?
[Python] Inversion de valeur booléenne en une ligne
Conversion de chaîne → valeur booléenne en Python Considération