Aprende Python · lección gratuita

Lección 23 · Números y matemáticas

Resumen

Python trabaja con números de forma natural, pero a menudo necesitamos redondear, obtener valores absolutos, sacar cocientes y restos, o convertir entre tipos antes de mostrar un resultado. Estas funciones integradas (no requieren import) cubren la mayoría de cálculos del día a día. En esta lección dominarás las herramientas numéricas básicas y cómo presentar decimales con elegancia usando f-strings.

Conceptos

Python distingue entre enteros (int) y decimales (float). Cuando combinas operaciones puedes necesitar pasar de uno a otro: int("42") convierte el texto "42" en el número 42, mientras que str(42) hace lo contrario. Esto es esencial al leer datos o construir mensajes, porque no puedes sumar un número a un texto directamente.

La división normal / siempre devuelve un float (10 / 2 es 5.0). Si quieres el cociente entero usa //, y para el resto usa %. La función divmod(a, b) te da ambos a la vez: el cociente entero y el resto, perfecta para convertir minutos a horas:minutos o repartir elementos en grupos.

total_minutos = 135
horas, minutos = divmod(total_minutos, 60)
print(horas, "horas y", minutos, "minutos")  # 2 horas y 15 minutos

El redondeo merece atención: round(3.14159, 2) da 3.14. Ten en cuenta que round devuelve un número (no texto), por lo que round(5.0, 2) muestra 5.0. Si quieres controlar exactamente cuántos decimales se ven al imprimir (por ejemplo, mostrar siempre dos), usa el formato de f-string :.2f, que produce texto con la cantidad de decimales indicada.

Ejemplos

# round() redondea al número de decimales indicado
print(round(3.14159, 2))   # 3.14
print(round(2.5))          # 2  (redondeo bancario en .5)

# abs() devuelve el valor absoluto
print(abs(-7))             # 7
print(abs(3 - 10))         # 7

# divmod() y el operador módulo %
print(divmod(17, 5))       # (3, 2)
print(17 % 5)              # 2  (resto)

# Conversión de tipos
print(int("25") + 5)       # 30
print(float("3.5") * 2)    # 7.0
print("Edad: " + str(30))  # Edad: 30

# Formatear decimales con f-strings
precio = 19.5
print(f"${precio:.2f}")    # $19.50
💡 Usa f-strings para mostrar, round() para calcular. Si solo quieres que un número se vea con 2 decimales en pantalla, f"{x:.2f}" es más limpio; reserva round() para cuando necesites seguir operando con el valor redondeado.

Cheatsheet

OperaciónSintaxisEjemploResultado
Redondearround(n, d)round(3.14159, 2)3.14
Redondear a enteroround(n)round(4.7)5
Valor absolutoabs(n)abs(-9)9
Cociente y restodivmod(a, b)divmod(17, 5)(3, 2)
Resto (módulo)a % b17 % 52
Cociente enteroa // b17 // 53
Texto → enteroint(s)int("42")42
Texto → decimalfloat(s)float("3.5")3.5
Número → textostr(n)str(42)"42"
Formato decimalf"{x:.2f}"f"{1.5:.2f}""1.50"

---

← Strings a fondoManejo de errores: try/except →

Ver todas las lecciones de Aprende Python →