Precedencia de operadores
Vamos a ver cómo funciona la precedencia de operadores en Python, que determina en qué orden se evalúan las operaciones cuando hay varias en una misma expresión.
Piensa en esto como el equivalente a las “reglas de prioridad” en matemáticas: primero se hacen multiplicaciones antes que sumas, por ejemplo.
🧮 Orden de precedencia (de mayor a menor)
Nivel | Operador(es) | Descripción |
---|---|---|
1 | () |
Paréntesis |
2 | ** |
Potencia |
3 | +x , -x , ~x |
Unarios: positivo, negativo, NOT bit a bit |
4 | * , / , // , % |
Multiplicación, división, módulo |
5 | + , - |
Suma y resta |
6 | < , <= , > , >= , == , != |
Comparaciones |
7 | not |
Negación lógica |
8 | and |
Y lógico |
9 | or |
O lógico |
10 | = , += , -= … |
Asignación (de derecha a izquierda) |
🔎 Ejemplos prácticos
🎯 Ejemplo 1: Operaciones matemáticas
resultado = 3 + 4 * 2
print(resultado) # 11 (multiplica antes que suma)
Si quieres que sume primero:
resultado = (3 + 4) * 2
print(resultado) # 14
🎯 Ejemplo 2: Potencias vs multiplicación
print(2 * 3 ** 2) # 2 * 9 = 18 (potencia primero)
print((2 * 3) ** 2) # 6 ** 2 = 36
🎯 Ejemplo 3: Comparaciones con lógica
x = 10
print(x > 5 and x < 20) # True (comparaciones antes que and)
print(not x > 5) # False (x > 5 → True, luego not True → False)
🎯 Ejemplo 4: Mezcla de aritmético y lógico
a = 5
b = 10
print(a + 2 > b or b / 2 == 5) # True (se evalúa todo paso a paso)
🔍 Detalle:
a + 2 > b
→7 > 10
→False
b / 2 == 5
→10 / 2 == 5
→5.0 == 5
→True
- Resultado:
False or True
→True
🧪 Ejercicio para ti
¿Qué valor imprime esta expresión?
print(3 + 2 * 4 > 10 and not (4 <= 2))
- Paso 1:
2 * 4
→8
- Paso 2:
3 + 8
→11
- Paso 3:
11 > 10
→True
- Paso 4:
4 <= 2
→False
→not False
→True
- Paso 5:
True and True
→True
🧠 Consejo práctico
Cuando tengas dudas sobre la precedencia, usa paréntesis para dejar claro el orden de evaluación. ¡Además mejora la legibilidad! 👓