Booleanos: True, False y lógica en Python

Actualizado el: 20/08/2026
Tempo de leitura: 3 minutos
Código Python com valores Boolean True e False em tela de computador

Los booleanos en Python representan dos estados: True y False. Son el resultado de comparaciones y controlan condiciones, validaciones, bucles y decisiones. Aunque parecen simples, es importante comprender los valores truthy y falsy, los operadores lógicos, la evaluación de cortocircuito y la diferencia entre igualdad e identidad.

La documentación oficial sobre comprobación del valor de verdad describe qué objetos se consideran falsos. La referencia de operaciones booleanas explica and, or y not.

Crear valores booleanos

activo = True
bloqueado = False

print(type(activo))  # bool

Escribe True y False con mayúscula inicial. Los textos "True" y "False" son strings, no booleanos.

Comparaciones

edad = 21

print(edad >= 18)
print(edad == 21)
print(edad != 30)
print(18 <= edad < 65)

Las comparaciones devuelven booleanos. La guía de operadores en Python explica comparación, identidad, pertenencia y precedencia.

Condiciones con if

usuario_activo = True

if usuario_activo:
    print("Acceso permitido")
else:
    print("Cuenta inactiva")

No es necesario escribir if usuario_activo == True. Usar el booleano directamente resulta más claro.

Operador and

edad = 25
tiene_documento = True

puede_entrar = edad >= 18 and tiene_documento
print(puede_entrar)

and exige que ambas condiciones sean verdaderas.

Operador or

es_admin = False
es_editor = True

puede_publicar = es_admin or es_editor
print(puede_publicar)

or necesita al menos una condición verdadera.

Operador not

sesion_cerrada = False

if not sesion_cerrada:
    print("La sesión sigue activa")

not invierte el valor de verdad.

Valores truthy y falsy

Además de False, se consideran falsos valores como None, cero y colecciones vacías.

valores = [
    False,
    None,
    0,
    0.0,
    "",
    [],
    {},
    set(),
]

for valor in valores:
    print(repr(valor), bool(valor))

La mayoría de los demás objetos son truthy. Esto permite comprobar si una colección tiene elementos:

resultados = [10, 20]

if resultados:
    print("Hay resultados")

None no significa False en todos los casos

resultado = None

if resultado is None:
    print("No existe un resultado todavía")

None, cero y una cadena vacía pueden representar situaciones distintas. La guía de None en Python explica cómo comprobar la ausencia de un valor con is None.

bool() y conversiones

print(bool(1))        # True
print(bool(0))        # False
print(bool("False"))  # True
print(bool(""))       # False

Una cadena no vacía es verdadera aunque contenga la palabra “False”. Para convertir texto del usuario, define reglas explícitas.

def convertir_booleano(texto):
    normalizado = texto.strip().casefold()

    if normalizado in {"sí", "si", "s", "true", "1"}:
        return True

    if normalizado in {"no", "n", "false", "0"}:
        return False

    raise ValueError(f"Valor booleano no válido: {texto!r}")

La guía del operador in en Python explica las pruebas de pertenencia utilizadas.

Evaluación de cortocircuito

Python evalúa solamente lo necesario. En and, si la primera parte es falsa, la segunda no se ejecuta. En or, si la primera es verdadera, la segunda se omite.

usuario = None

if usuario is not None and usuario.get("activo"):
    print("Usuario activo")

La segunda expresión solo se evalúa cuando usuario no es None.

and y or devuelven operandos

nombre = ""
nombre_visible = nombre or "Invitado"
print(nombre_visible)

or devuelve el primer operando truthy o el último evaluado. Este patrón es útil para valores predeterminados, pero puede reemplazar accidentalmente ceros o cadenas vacías válidas.

any() y all()

permisos = [False, True, False]
validaciones = [True, True, True]

print(any(permisos))
print(all(validaciones))
  • any() devuelve verdadero si algún elemento es truthy.
  • all() devuelve verdadero si todos son truthy.

Igualdad e identidad

lista_a = [1, 2]
lista_b = [1, 2]

print(lista_a == lista_b)  # mismos valores
print(lista_a is lista_b)  # objetos diferentes

Usa == para comparar valores. Reserva is para identidad, especialmente is None.

Booleanos en funciones

def puede_comprar(edad, saldo, bloqueado=False):
    return (
        edad >= 18
        and saldo > 0
        and not bloqueado
    )

Una función predicativa debe tener un nombre que sugiera una respuesta verdadera o falsa. La guía de funciones en Python ayuda a organizar estas reglas.

Validar entrada

while True:
    respuesta = input("¿Continuar? [s/n]: ").strip()

    try:
        continuar = convertir_booleano(respuesta)
    except ValueError:
        print("Escribe s o n")
        continue

    break

Para conversiones y reintentos, consulta la guía de input() en Python.

Errores frecuentes

  • Escribir true o false en minúsculas.
  • Creer que bool("False") devuelve falso.
  • Confundir is con ==.
  • Usar if valor cuando cero y ausencia tienen significados diferentes.
  • Crear condiciones largas sin nombres intermedios.
  • Capturar errores de conversión sin informar el valor inválido.

Conclusión

Los booleanos en Python conectan comparaciones con decisiones. Comprende los valores truthy y falsy, usa is None para ausencia, aprovecha el cortocircuito con cuidado y convierte texto mediante reglas explícitas. Una condición clara suele ser más valiosa que una expresión breve pero difícil de interpretar.

Compartilhe:

Facebook
WhatsApp
Twitter
LinkedIn

Contenido del artículo

    Artículos relacionados

    notebook com código saindo da tela
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    Variables: asignación, tipos y alcance en Python

    Aprende variables en Python: asignación, nombres, tipos, conversiones, referencias, mutabilidad, alcance, constantes, None y errores frecuentes.

    Ler mais

    Tempo de leitura: 4 minutos
    12/07/2026
    Diferença entre operadores is e == em Python
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    == vs is en Python: igualdad vs identidad

    Entiende la diferencia entre == e is en Python, igualdad, identidad, None, interning, copias superficiales, deepcopy y objetos personalizados.

    Ler mais

    Tempo de leitura: 4 minutos
    12/07/2026
    Menu interativo no terminal criado com Python
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    Menú interactivo en terminal con Python

    Crea un menú interactivo en Python con while, funciones, diccionarios, validación, submenús, persistencia JSON y manejo seguro de errores.

    Ler mais

    Tempo de leitura: 4 minutos
    12/07/2026
    ícone de loop com o texto 'While' abaixo
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    while: repite acciones con condiciones en Python

    Aprende bucles while en Python con condiciones, validación, menús, break, continue, else, centinelas, reintentos y buenas prácticas.

    Ler mais

    Tempo de leitura: 5 minutos
    11/07/2026
    Imagem de um quadro negro com várias interrogações no lugar de lâmpadas, e uma lâmpada conectada no meio
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    if, elif y else: lógica condicional en Python

    Aprende if, elif y else en Python con comparaciones, operadores lógicos, validación, rangos, menús, retornos tempranos y pruebas.

    Ler mais

    Tempo de leitura: 4 minutos
    11/07/2026
    Manipulação de dados JSON em Python
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    JSON en Python: leer, escribir y validar datos

    Aprende JSON en Python con load, loads, dump, dumps, archivos UTF-8, validación, APIs, Decimal, fechas y escritura segura.

    Ler mais

    Tempo de leitura: 4 minutos
    11/07/2026