relacionales - Evaluación de expresiones booleanas en Python
valores booleanos y operaciones logicas (2)
Se puede probar cualquier valor de verdad para cualquier objeto, para usarlo en una condición if o while o como operando de las operaciones booleanas a continuación. Los siguientes valores se consideran falsos:
Ninguna
Falso
cero de cualquier tipo numérico, por ejemplo,
0
,0L
,0.0
,0j
.cualquier secuencia vacía, por ejemplo,
''''
,()
,[]
.cualquier mapeo vacío, por ejemplo,
{}
.instancias de clases definidas por el usuario, si la clase define un
__nonzero__()
o__len__()
, cuando ese método devuelve el valor entero cero o boolFalse
.Todos los demás valores se consideran verdaderos, por lo que los objetos de muchos tipos siempre son verdaderos. Las operaciones y las funciones incorporadas que tienen un resultado Boolean siempre devuelven 0 o
False
para falso y 1 oTrue
para verdadero, a menos que se indique lo contrario. (Excepción importante: las operaciones booleanas "o" y "y" siempre devuelven uno de sus operandos).
https://docs.python.org/2/library/stdtypes.html#truth-value-testing
Y como se mencionó, puede anular con objetos personalizados modificando no nero.
¿Qué valor de verdad evalúan los objetos en Python?
preguntas relacionadas
- Valor booleano de los objetos en Python : debate sobre la anulación de la forma en que se evalúa
Actualización : eliminó toda la información duplicada con la publicación de Meder
Para objetos personalizados en Python <3.0 __nonzero__
para cambiar la forma en que se evalúa. En Python 3.0 esto es __bool__
( Referencia de e-satis)
Es importante entender qué se entiende por evaluar. Un significado es cuando un objeto está lanzando explícitamente a bool o implícitamente emitido por su ubicación (en un ciclo if o while).
Otra es == evaluación. 1 == Verdadero, 0 == Falso, nada más es igual vía ==.
>>> None==False
False
>>> 1==True
True
>>> 0==False
True
>>> 2==False
False
>>> 2==True
False
Finalmente, para es, solo verdadero o falso son ellos mismos.