Tipos booleanos

En esta lección se tratan los tipos de datos lógicos, también llamados booleanos.

¡Atención!Los ejemplos de esta lección muestran el resultado de ejecutar las operaciones en el prompt de IDLE.

Tipos booleanos: True y False

Una variable booleana es una variable que sólo puede tomar dos posibles valores: True (verdadero) o False (falso).

En Python cualquier variable (en general, cualquier objeto) puede considerarse como una variable booleana. En general los elementos nulos o vacíos se consideran False y el resto se consideran True.

Para comprobar si un elemento se considera True o False, se puede convertir a su valor booleano mediante la función bool().

>>> bool(0)
False
>>> bool(0.0)
False
>>> bool(0 + 0j)
False
>>> bool("")
False
>>> bool(None)
False
>>> bool(())
False
>>> bool([])
False
>>> bool({})
False
>>> bool(25)
True
>>> bool(-9.5)
True
>>> bool(1 + 1j)
True
>>> bool("abc")
True
>>> bool((1, 2, 3))
True
>>> bool([27, "octubre", 1997])
True
>>> bool({27, "octubre", 1997})
True

Operadores lógicos

Los operadores lógicos son unas operaciones que trabajan con valores booleanos.

Expresiones compuestas

Si no se está acostumbrado a evaluar expresiones lógicas compuestas, se recomienda utilizar paréntesis para asegurar el orden de las operaciones.

Al componer expresiones más complejas hay que tener en cuenta que Python evalúa primero los not, luego los and y por último los or, como puede comprobarse en los ejemplos siguientes:


En las expresiones lógicas se pueden utilizar valores distintos de True o False, que Python convierte a True o False para poder evaluar las expresiones. Como se ha comentado al principio de esta lección, todos los valores se consideran True, menos el cero (0 entero, 0.0 decimal o 0+0j complejo), la cadena vacía "" y en general los elementos vacíos (tupla vacía (), lista vacía [], rango vacío range(0), conjunto o diccionario vacíos {}, etc.), que se consideran False.

Al utilizar valores distintos a True o False en las expresiones lógicas, el resultado puede estar expresado mediante estos valores:

>>> 3 or 4
3

Si se quieren mostrar valores booleanos, se puede convertir el resultado a un valor booleano:

>>> 3 or 4
3
>>> bool(3 or 4)     # Verdadero porque 3 es diferente de 0
True

Nota: En la lección Detalles de Python se comenta con más detalle por qué Python da estos resultados.

Comparaciones

Las comparaciones también dan como resultado valores booleanos:

Es importante señalar que en matemáticas el signo igual se utiliza tanto en las asignaciones como en las comparaciones, mientras que en Python (y en otros muchos lenguajes de programación):

Cuando se aprende a programar es habitual confundir una cosa con la otra (el error más frecuente es escribir una sola igualdad en las comparaciones), por lo que se recomienda prestar atención a este detalle.


Python permite encadenar varias comparaciones y el resultado será verdadero si y sólo si todas las comparaciones lo son.

>>> 4 == 3 + 1 > 2
True
>>> 2 != 1 + 1 > 0
False

Encadenar comparaciones no está permitido en otros lenguajes como PHP, en los que las comparaciones deben combinarse mediante operadores lógicos and, lo que también puede hacerse en Python:

>>> 4 == 3 + 1  and 3 + 1 > 2
True
>>> 2 != 1 + 1 and 1 + 1 > 0
False