Aprende Python · lección gratuita

Lección 07 · Operadores lógicos: and, or, not

Resumen

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.

Conceptos

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.

Ejemplos

# 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. and falla con que uno solo sea False; or triunfa con que uno solo sea True. Tener esto presente evita condiciones mal escritas.

Cheatsheet

ExpresiónSignificadoResultado de ejemplo
True and Trueambos verdaderosTrue
True and Falseuno falsoFalse
True or Falseal menos uno verdaderoTrue
False or Falseninguno verdaderoFalse
not TrueinvierteFalse
a >= 18 and a < 65combina dos comparacionesbool

---

← Condicionales: if, elif, elseEl bucle while →

Ver todas las lecciones de Aprende Python →