Aprende leyendo en orden

Booleanos y construcción de condiciones

Este artículo forma parte del Curso de Python, con el que dominarás desde cero las habilidades necesarias para usar Python, desde lo básico hasta lo avanzado.
Aprende el tipo bool de Python con sus dos valores True / False, por qué score == 100 devuelve bool, el if para ramificar y la tabla de verdad de and / or / not.

¿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)