Pregunta 1¿Cuál de los siguientes es un valor bool válido?
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.
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'>
Las comparaciones producen booleanos
No solo obtienes booleanos escribiendo True / False — los 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).
| Operador | Significado | Ejemplo | Resultado |
|---|---|---|---|
| == | igual a | 5 == 5 | True |
| != | distinto de | 5 != 3 | True |
| > | mayor que | 5 > 3 | True |
| < | menor que | 5 < 3 | False |
| >= | mayor o igual | 5 >= 5 | True |
| <= | menor o igual | 5 <= 3 | False |
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.
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.
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")
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).
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).
| A | B | A and B | A or B |
|---|---|---|---|
| True | True | True | True |
| True | False | False | True |
| False | True | False | True |
| False | False | False | False |
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")
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.
Verificación de conocimientos
Responde cada pregunta una a una.
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)