Operadores en Python para principiantes: aritméticos, lógicos y más

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 son los verbos del código. Sin ellos, no podrías crear un sistema de login, un motor de búsqueda o un filtro de precios.
Operadores Aritméticos
Los operadores aritméticos te permiten realizar cálculos matemáticos básicos.
| Operador | Significado | Ejemplo | Resultado |
|---|---|---|---|
+ | Suma | 10 + 3 | 13 |
- | Resta | 10 - 3 | 7 |
* | Multiplicación | 10 * 3 | 30 |
/ | División | 10 / 3 | 3.3333 |
% | Módulo | 10 % 3 | 1 |
** | Potenciación | 10 ** 3 | 1000 |
// | División entera | 10 // 3 | 3 |
Diferencia entre / y //
Es importante notar la diferencia: / siempre devuelve un número decimal (float), mientras que // redondea hacia abajo al entero más cercano.
print(10 / 3) # 3.3333333333333335 (float)
print(10 // 3) # 3 (int, descarta el decimal)
print(-10 // 3) # -4 (¡redondea hacia abajo!)
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:
| Operador | Ejemplo | Equivalente a | Resultado Final de x |
|---|---|---|---|
= | x = 5 | x = 5 | 5 |
+= | x += 3 | x = x + 3 | 13 |
-= | x -= 2 | x = x - 2 | 8 |
*= | x *= 4 | x = x * 4 | 40 |
/= | x /= 2 | x = x / 2 | 5.0 |
%= | x %= 3 | x = x % 3 | 1 |
//= | x //= 3 | x = x // 3 | 3 |
**= | x **= 2 | x = x ** 2 | 100 |
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).
| Operador | Significado | Ejemplo | Resultado |
|---|---|---|---|
== | Igual a | 5 == 5 | True |
!= | Distinto de | 5 != 3 | True |
> | Mayor que | 10 > 20 | False |
< | Menor que | 10 < 20 | True |
>= | Mayor o igual | 18 >= 18 | True |
<= | Menor o igual | 15 <= 10 | False |
Diferencia entre = y ==
Este es uno de los errores más comunes para principiantes:
=es el operador de asignación:x = 5(le damos el valor 5 a x).==es el operador de comparación:x == 5(preguntamos si x es igual a 5).
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.
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.
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
El operador not (NO)
Invierte el valor booleano: convierte True en False y viceversa.
puerta_cerrada = True
if not puerta_cerrada:
print("La puerta está abierta, puedes pasar")
else:
print("La puerta está cerrada, necesitas la llave")
Tabla de verdad (Truth Table)
| A | B | A and B | A or B | not A |
|---|---|---|---|---|
True | True | True | True | False |
True | False | False | True | False |
False | True | False | True | True |
False | False | False | False | 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 esFalse, Python ya no mira la segunda, porque sabe que el resultado final seráFalsede todos modos. -
En un
or: Si la primera condición esTrue, Python ignora la segunda, porque ya sabe que el resultado seráTrue.
# 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.
# ¿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).
frutas = ["manzana", "banana", "uva"]
print("manzana" in frutas) # True
print("pera" in frutas) # False
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:
edad = 20
tiene_entrada = False
esta_invitado = True
esta_banned = False
# Tu lógica aquí
# puede_entrar = ...
Solución:
puede_entrar = edad >= 18 and (tiene_entrada or esta_invitado) and not esta_banned
print(f"¿Puede entrar?: {puede_entrar}") # True
-
Más sobre operadores en Python: Hektor Docs - Operadores en Python.
-
Más sobre operadores en Python W3School: W3School - Python Operators.
¿Listo para continuar? Ahora que dominas los operadores, aprende a tomar decisiones con estructuras condicionales en Python.
¿Quieres poner a prueba lo que aprendiste? Usa DivZone AI para generar y probar tus propios ejercicios con operadores.