Aprende Python · lección gratuita
Los operadores lógicos te permiten combinar varias condiciones booleanas en una sola expresión. Con ellos puedes preguntar cosas como "si tiene entrada Y es mayor de edad" o "si es sábado O domingo". En Python son palabras, no símbolos: and, or y not.
and devuelve True solo si ambos operandos son verdaderos.or devuelve True si al menos uno de los operandos es verdadero.not invierte un valor booleano: not True es False.if.a > b and c < d) siempre es un bool.Un operador lógico toma uno o dos valores booleanos y produce otro booleano. El operador and exige que las dos condiciones se cumplan: piensa en una puerta que necesita dos llaves a la vez. El operador or es más flexible: con que una condición sea verdadera, ya basta. El operador not actúa sobre un solo valor y lo voltea, convirtiendo True en False y viceversa.
Estos operadores se usan constantemente para combinar comparaciones (<, >, ==, etc.) y tomar decisiones más ricas. Por ejemplo, validar que una edad esté dentro de un rango requiere comprobar dos límites a la vez:
edad = 25
es_adulto = edad >= 18 and edad < 65
print(es_adulto) # True
Las tablas de verdad resumen todos los casos posibles. Para and, el resultado es True únicamente cuando ambos lados son True. Para or, el resultado es False únicamente cuando ambos lados son False. Memorizar estas dos reglas te ahorra muchos errores al escribir condiciones.
# and: necesita que AMBOS sean True
tiene_entrada = True
es_mayor = True
print(tiene_entrada and es_mayor) # True
# or: basta con que UNO sea True
es_sabado = False
es_domingo = True
print(es_sabado or es_domingo) # True
# not: invierte el valor
llueve = False
print(not llueve) # True
# Combinando comparaciones dentro de un if
nota = 14
if nota >= 11 and nota <= 20:
print("Aprobado") # Aprobado
💡 Recuerda la regla rápida.andfalla con que uno solo seaFalse;ortriunfa con que uno solo seaTrue. Tener esto presente evita condiciones mal escritas.
| Expresión | Significado | Resultado de ejemplo |
|---|---|---|
True and True | ambos verdaderos | True |
True and False | uno falso | False |
True or False | al menos uno verdadero | True |
False or False | ninguno verdadero | False |
not True | invierte | False |
a >= 18 and a < 65 | combina dos comparaciones | bool |
---