Aprende Python · lección gratuita

Lección 03 · Operadores aritméticos

Resumen

Los operadores aritméticos permiten que Python funcione como una calculadora muy poderosa. Con ellos sumas, restas, multiplicas y divides, pero también puedes obtener el resto de una división o elevar un número a una potencia. Dominar estos operadores y el orden en que se evalúan es la base para resolver cualquier problema de cálculo.

Conceptos

Python evalúa expresiones aritméticas respetando la precedencia de operadores, igual que en matemáticas. La potencia (**) se calcula primero, después la multiplicación, división, división entera y módulo (*, /, //, %), y por último la suma y la resta. Cuando varios operadores tienen la misma precedencia, se evalúan de izquierda a derecha. Si quieres cambiar ese orden, usa paréntesis ( ): lo que está dentro se calcula primero.

Es importante distinguir entre / y //. La división normal / devuelve siempre un número decimal (float), aunque el resultado sea exacto: 10 / 2 da 5.0. La división entera // descarta la parte decimal y se queda con el cociente: 7 // 2 da 3. El operador módulo % es el complemento perfecto de //, porque devuelve el resto de esa división: 7 % 2 da 1. El módulo es muy útil para saber si un número es par (n % 2 == 0) o múltiplo de otro.

total = 10 + 3 * 2     # primero 3*2=6, luego 10+6 -> 16
print(total)           # 16
print((10 + 3) * 2)    # con paréntesis: 13*2 -> 26
print(2 ** 10)         # potencia: 1024
print(17 % 5)          # resto de 17/5 -> 2

Los operadores de asignación compuesta son atajos para actualizar una variable usando su propio valor. Escribir x += 5 es exactamente lo mismo que x = x + 5, pero más corto y legible. Lo mismo aplica para -=, =, /=, //=, %= y *=. Se usan muchísimo para llevar acumuladores o contadores.

Ejemplos

# División normal vs división entera
print(9 / 4)      # 2.25  (float)
print(9 // 4)     # 2     (cociente entero)
print(9 % 4)      # 1     (resto)

# Potencia y precedencia
print(3 ** 2 + 1)   # 9 + 1 -> 10
print(2 + 3 * 4)    # 2 + 12 -> 14

# Operadores de asignación compuesta
saldo = 100
saldo += 50      # saldo = 100 + 50
saldo -= 30      # saldo = 150 - 30
print(saldo)     # 120

precio = 20
precio *= 3      # precio = 20 * 3
print(precio)    # 60
💡 Recuerda que / siempre da un float. Si necesitas un resultado entero exacto (por ejemplo, contar grupos completos), usa la división entera //.

Cheatsheet

OperadorNombreEjemploResultado
+Suma5 + 27
-Resta5 - 23
*Multiplicación5 * 210
/División5 / 22.5
//División entera5 // 22
%Módulo (resto)5 % 21
**Potencia5 ** 225
+=Suma y asignax += 2x = x + 2
-=Resta y asignax -= 2x = x - 2
*=Multiplica y asignax *= 2x = x * 2

---

← Variables y tipos de datosCadenas de texto (strings) →

Ver todas las lecciones de Aprende Python →