Aprende leyendo en orden

Booleanos y construcción de condiciones

Aprende los booleanos de Python: True / False, comparaciones y operadores lógicos and / or / not para construir condiciones claras.

¿Qué es un booleano (bool)?

Un booleano (bool) es un tipo que solo puede contener dos valores: True y False. Es como Python representa los estados del tipo sí/no o cierto/falso — básicamente, cualquier cosa con dos opciones.

Así como int maneja números y str maneja cadenas, bool es el tipo especializado para valores de verdad.

Los únicos valores que puede tomar bool
tipo boolTrue(verdadero)False(falso)valor 1valor 2

A diferencia de otros tipos, bool está limitado a exactamente dos valores — True y False. Eso es lo que hace que se lleve tan bien con la asignación, la comparación y las ramas condicionales.

True y False deben comenzar con mayúscula. Si escribes true o TRUE obtendrás un NameError.

Tampoco son cadenas, así que no los envuelvas en comillas como "True" (eso los convierte en str).

# Asignar valores bool
is_animal = True
is_human = False

print(is_animal)        # True
print(is_human)         # False
print(type(is_animal))  # <class 'bool'>

# Escribir "True" lo convierte en str (algo distinto)
looks_bool = "True"
print(type(looks_bool)) # <class 'str'>

Crea una variable bool en la terminal.

① Asigna True a is_student y muéstralo con print().

② Muestra el tipo de is_student con type().

Editor Python

Ejecutar el código para ver el resultado

Las comparaciones producen booleanos

No solo obtienes booleanos escribiendo True / Falselos operadores de comparación también los producen.

Python tiene seis operadores de comparación, y cada uno siempre devuelve True o False (es decir, un bool).

OperadorSignificadoEjemploResultado
==igual a5 == 5True
!=distinto de5 != 3True
>mayor que5 > 3True
<menor que5 < 3False
>=mayor o igual5 >= 5True
<=menor o igual5 <= 3False
Cómo fluye una comparación
age = 20age >= 18Trueage < 18Falseevaluarresultadoevaluarresultado

Cuando se evalúa una expresión, devuelve True o False. También puedes guardar ese resultado en una variable y reutilizarlo.

age = 20

print(age == 20)      # True  (igual)
print(age != 18)      # True  (distinto)
print(age >= 18)      # True  (>=)
print(age < 18)       # False (<)

# Puedes guardar el resultado en una variable
is_adult = age >= 18
print(is_adult)       # True
print(type(is_adult)) # <class 'bool'>

# Las cadenas también se comparan (== y != son las más útiles)
print("apple" == "apple")  # True
print("apple" == "Apple")  # False (distingue mayúsculas)

= y == son distintos

= (un solo igual) es asignación, y == (doble igual) es comparación. age = 20 significa «guardar 20 en age», mientras que age == 20 pregunta «¿es age igual a 20?». Confundirlos es una forma fácil de introducir un bug difícil de detectar, así que mantenlos bien separados.

Partiendo de score = 75, confirma que las comparaciones producen booleanos.

① Imprime el resultado de score == 100.

② Pon el resultado de score >= 60 en una variable passed, luego imprímela.

③ Muestra el tipo de passed con type().

Editor Python

Ejecutar el código para ver el resultado

Usar booleanos en instrucciones if

El lugar donde más vas a encontrar booleanos es la instrucción if (una ramificación condicional). El bloque de dentro se ejecuta solo cuando la expresión después de if vale True.

Cubriremos if con más profundidad después — por ahora, basta con sentir cómo un bool cambia el comportamiento.

if y bool
if True: print(...)ejecuta bloquesalida apareceif False: print(...)omitesin salidaTrueprintFalseomite

Termina la línea if con dos puntos :, y escribe el cuerpo con una indentación de 4 espacios. Esa indentación es lo que le dice a Python qué líneas pertenecen al if.

is_animal = True

# Se ejecuta porque is_animal es True
if is_animal:
    print("Es un animal")

# Se omite porque is_human es False — no imprime nada
is_human = False
if is_human:
    print("Es un humano")

# Puedes poner una comparación directamente en el if
age = 20
if age >= 18:
    print("Adulto")

Practica ramificar con distintos booleanos.

① Define is_open = True e imprime "ABIERTO" cuando sea True.

② Define temperature = 35 e imprime "Día caluroso" cuando temperature >= 30.

Editor Python

Ejecutar el código para ver el resultado

Operadores lógicos: and / or / not

Cuando quieras combinar varias condiciones, recurre a los operadores lógicos and / or / not.

Toman booleanos como entrada y devuelven booleanos — corresponden a las palabras en inglés «and» (y), «or» (o) y «not» (no).

Diferencias entre and / or / not
and(ambos)True and TrueTrueor(alguno)True or FalseTruenot(invertir)not TrueFalseejemploresultadoejemploresultadoejemploinvertir

and es True solo cuando ambos lados son True.

or es True cuando alguno de los lados es True.

not invierte True y False.

Tabla de verdad

El resultado de and y or está totalmente determinado por los booleanos izquierdo y derecho. Ayuda pensarlos como intersección (and) y unión (or).

ABA and BA or B
TrueTrueTrueTrue
TrueFalseFalseTrue
FalseTrueFalseTrue
FalseFalseFalseFalse
is_man = True
is_adult = True

# and: True solo cuando ambos son True
if is_man and is_adult:
    print("Hombre adulto")

# or: True cuando al menos uno es True
if is_man or is_adult:
    print("Hombre o adulto")

# not: invierte el valor
is_child = not is_adult
print(is_child)          # False

# Combinar con comparaciones
age = 25
if age >= 18 and age < 65:
    print("Adulto en edad laboral")

Con is_member = True y age = 15, prueba los operadores lógicos.

① Imprime el resultado de is_member and age >= 18.

② Imprime el resultado de is_member or age >= 18.

③ Imprime el resultado de not is_member.

Editor Python

Ejecutar el código para ver el resultado

No escribas &&, ||, !

Algunos otros lenguajes usan &&, || y !, pero Python siempre usa and, or y not (las palabras en inglés). Escribir && te dará un SyntaxError.

En este artículo aprendiste sobre el tipo booleano (bool) y cómo usarlo. Viste que bool solo contiene dos valores, que las comparaciones producen booleanos, que las instrucciones if te permiten ramificar con ellos, y que and / or / not te permiten combinar condiciones — la base de toda condición que escribas.

A continuación, veremos los números más a fondo con los tipos int y float.

QUIZ

Verificación de conocimientos

Responde cada pregunta una a una.

Pregunta 1¿Cuál de los siguientes es un valor bool válido?

Pregunta 2¿Qué imprime este código?
x = 10
print(x == 10 and x < 5)

Pregunta 3¿Qué imprime este código?
is_open = False
print(not is_open)