usar - ¿Cómo uso un booleano en Python?
operadores relacionales en python (6)
¿Python realmente contiene un valor booleano? Sé que puedes hacer:
checker = 1
if checker:
#dostuff
Pero soy bastante pedante y disfruto viendo booleanos en Java. Por ejemplo:
Boolean checker;
if (someDecision)
{
checker = true;
}
if(checker)
{
//some stuff
}
¿Hay algo así como un booleano en Python? Parece que no puedo encontrar nada parecido en la documentación.
A diferencia de Java donde declararía boolean flag = True
, en Python puede declarar myFlag = True
Python interpretaría esto como una variable booleana
Los builtins booleanos están en mayúscula: True
y False
.
Tenga en cuenta también que puede hacer checker = bool(some_decision)
como un poco de taquigrafía - http://docs.python.org/library/functions.html#bool solo devolverá True
o False
.
Es bueno saber para referencia futura que las clases que definen __nonzero__
o __len__
serán True
o False
dependiendo del resultado de esas funciones, pero prácticamente el resultado booleano de cada otro objeto será True
(excepto para el objeto None
, las secuencias vacías y los ceros numéricos) .
Los tipos booleanos se definen en la documentación:
http://docs.python.org/library/stdtypes.html#boolean-values
Citado de doc:
Los valores booleanos son los dos objetos constantes False y True. Se utilizan para representar valores de verdad (aunque otros valores también pueden considerarse falsos o verdaderos). En contextos numéricos (por ejemplo, cuando se usa como argumento para un operador aritmético), se comportan como los enteros 0 y 1, respectivamente. La función incorporada bool () se puede utilizar para convertir cualquier valor a un booleano, si el valor se puede interpretar como un valor de verdad (ver la sección Prueba de valor de verdad más arriba).
Están escritos como Falso y Verdadero, respectivamente.
Entonces, en el código java, eliminar llaves, cambiar a True
y estarás bien :)
Sí, hay un tipo de datos bool
(que hereda de int
y tiene solo dos valores: True
y False
).
Pero también Python tiene el concepto boolean-able
para cada objeto, que se usa cuando se llama a la función bool([x])
.
Ver más: object.nonzero boolean-value-of-objects-in-python y boolean-value-of-objects-in-python .
True
... y False
obviamente.
De lo contrario, None
evalúa False, al igual que el entero 0
y también el flotante 0.0
(aunque yo no usaría flotadores como ese). Además, las listas vacías []
, las agrupaciones vacías ()
y las cadenas vacías ''''
o ''''
evalúan a False.
Pruébelo usted mismo con la función bool()
:
bool([])
bool([''a value''])
bool('''')
bool(''A string'')
bool(True) # ;-)
bool(False)
bool(0)
bool(None)
bool(0.0)
bool(1)
etc.
checker = None # not necessary
if some_decision:
checker = True
if checker:
# some stuff
[Editar]
Para más información: http://docs.python.org/library/functions.html#bool
Tu código también funciona, ya que 1 se convierte en True cuando es necesario. En realidad, Python no tenía un tipo booleano durante mucho tiempo (como en la antigua C), y algunos programadores utilizan enteros en lugar de booleanos.