Saltar al contenido principal

Operadores lógicos en Python para principiantes y con ejemplos

Conceptos sobre variables en Python

Aprende qué son y cómo usar los operadores básicos en Python: aritméticos, de comparación, lógicos y de asignación, con ejemplos simples.

Si las variables son los nombres, los operadores lógicos son los verbos de decisión. Sin ellos, no podrías crear un sistema de login, un motor de búsqueda o un filtro de precios.

En Python, la lógica se basa en el Álgebra de Boole, donde todo se reduce a dos estados: True (Verdadero) o False (Falso).

Operadores Aritméticos

OperadorSignificadoEjemploResultado
+Suma10 + 313
-Resta10 - 37
*Multiplicación10 * 330
/División10 / 33.3333
%Módulo10 % 31
**Potenciación10 ** 31000
//División entera10 // 33

Operadores de Asignación

Estos operadores se utilizan para asignar un valor a una variable. La mayoría combina una operación aritmética con una asignación en un solo paso.

Asumiendo que empezamos con x = 10:

OperadorEjemploEquivalente aResultado Final de x
=x = 5x = 55
+=x += 3x = x + 313
-=x -= 2x = x - 28
*=x *= 4x = x * 440
/=x /= 2x = x / 25.0
%=x %= 3x = x % 31
//=x //= 3x = x // 33
**=x **= 2x = x ** 2100

Los bloques de construcción: Operadores de Comparación

Antes de entrar en la lógica pura, necesitamos comparar datos. Estos operadores siempre devuelven un valor booleano (True o False).

OperadorSignificadoEjemploResultado
==Igual a5 == 5True
!=Distinto de5 != 3True
>Mayor que10 > 20False
<Menor que10 < 20True
>=Mayor o igual18 >= 18True
<=Menor o igual15 <= 10False

Los 3 Pilares de la Lógica: and, or, not

Aquí es donde Python brilla por su legibilidad. En otros lenguajes se usa && o ||, pero en Python usamos palabras en inglés, lo que hace que el código se lea como lenguaje natural.

El operador and (Y)

Devuelve True solo si ambas condiciones son verdaderas. Es un filtro estricto.

Python
edad = 25
tiene_licencia = True

# Para conducir, necesitas ambas cosas
puede_conducir = edad >= 18 and tiene_licencia
print(f"¿Puede conducir?: {puede_conducir}") # True

El operador or (O)

Devuelve True si al menos una de las condiciones es verdadera. Es un filtro flexible.

Python
es_fin_de_semana = True
esta_de_vacaciones = False

# Descansamos si es finde O si estamos de vacaciones
descanso = es_fin_de_semana or esta_de_vacaciones
print(f"¿Hoy se descansa?: {descanso}") # True

Evaluación de Cortocircuito (Short-circuiting)

Python es inteligente y perezoso (en el buen sentido). Esto optimiza el rendimiento:

  • En un and: Si la primera condición es False, Python ya no mira la segunda, porque sabe que el resultado final será False de todos modos.

  • En un or: Si la primera condición es True, Python ignora la segunda, porque ya sabe que el resultado será True.

Python
# Ejemplo de seguridad
divisor = 0
# Si no fuera por el cortocircuito, esto daría error (división por cero)
# Pero como divisor != 0 es False, Python no evalúa la segunda parte.
resultado = divisor != 0 and (10 / divisor > 1)
print(resultado) # False (sin errores)

Prioridad de los Operadores

Al igual que en las matemáticas (donde la multiplicación va antes que la suma), en la lógica hay una jerarquía. El orden de evaluación es:

  • not (Máxima prioridad)

  • and

  • or (Mínima prioridad)

Tip Pro: Usa siempre paréntesis para evitar confusiones y hacer que tu código sea legible para otros humanos.

Python
# ¿Qué crees que da esto?
resultado = True or False and False
# Primero evalúa: False and False -> False
# Luego: True or False -> True
print(resultado) # True

# Mucho mejor con paréntesis:
resultado = (True or False) and False # False

Operadores Especiales: is e in

Python tiene dos operadores lógicos adicionales muy potentes:

  • in: Verifica si un elemento está dentro de una colección (lista, string, etc.).

  • is: Verifica si dos variables apuntan al mismo objeto en memoria (identidad).

Python
frutas = ["manzana", "banana", "uva"]
print("manzana" in frutas) # True

a = [1, 2, 3]
b = [1, 2, 3]
print(a == b) # True (tienen el mismo contenido)
print(a is b) # False (son dos listas distintas en memoria)

Reto Práctico: "El Guardián del Club"

Escribe un script que decida si una persona puede entrar a un club VIP. Las reglas son:

  • Debe ser mayor de 18 años.

  • Debe tener una entrada válida O estar en la lista de invitados.

  • No debe estar en la lista negra (banned).

Variables de prueba:

Python
edad = 20
tiene_entrada = False
esta_invitado = True
esta_banned = False

# Tu lógica aquí
# puede_entrar = ...
Recursos