Funciones matemáticas en Python: redondeo, logaritmos y factorial
Trabajar con números en Python es fundamental tanto en aplicaciones prácticas como en cálculos científicos. Ya sea que analices datos, desarrolles aplicaciones financieras o trabajes en machine learning, conocer las funciones matemáticas de Python simplificará enormemente tu desarrollo. Además, estas funciones mejoran la precisión de tus cálculos.
En este artículo, exploraremos a fondo las operaciones matemáticas clave en Python. Veremos diferentes formas de trabajar con números y estudiaremos ejemplos prácticos de uso de estas funciones.
Módulo math: la herramienta principal para cálculos matemáticos
El módulo integrado math en Python ofrece un amplio conjunto de funciones para realizar operaciones matemáticas. Este módulo contiene todas las herramientas necesarias para trabajar con números.
import math
Principales funcionalidades del módulo math
El módulo math incluye muchas funciones útiles:
- Funciones trigonométricas (sin, cos, tan)
- Funciones hiperbólicas (sinh, cosh, tanh)
- Funciones de redondeo (floor, ceil, trunc)
- Funciones logarítmicas (log, log2, log10)
- Funciones de potencias (pow, sqrt)
- Constantes matemáticas (pi, e)
Redondeo de números en Python
Función round() para redondeo básico
La función round() se usa para redondear un número a una cantidad específica de decimales. Es la forma más simple de redondear en Python.
numero = 3.14159265
redondeado = round(numero, 2)
print(redondeado) # Resultado: 3.14
Formato de llamada de la función round():
round(numero, decimales)
Parámetros de la función:
- numero — el número a redondear
- decimales — cantidad de decimales (por defecto 0)
Particularidades de la función round()
La función round() usa la regla de "redondeo al par más cercano". Cuando el valor es exactamente 0.5, se redondea al número par más cercano:
print(round(0.5)) # Resultado: 0
print(round(1.5)) # Resultado: 2
print(round(2.5)) # Resultado: 2
Redondeo matemático con math.floor() y math.ceil()
Las funciones math.floor() y math.ceil() proporcionan un redondeo dirigido:
- math.floor() — redondea hacia abajo (al entero menor)
- math.ceil() — redondea hacia arriba (al entero mayor)
import math
print(math.floor(3.7)) # Resultado: 3
print(math.ceil(3.7)) # Resultado: 4
print(math.floor(-3.7)) # Resultado: -4
print(math.ceil(-3.7)) # Resultado: -3
Función math.trunc() para truncar la parte decimal
La función math.trunc() elimina la parte decimal del número sin redondear:
print(math.trunc(3.7)) # Resultado: 3
print(math.trunc(-3.7)) # Resultado: -3
Redondeo de alta precisión con el módulo decimal
Para cálculos financieros precisos, se recomienda usar el módulo decimal. Este módulo permite controlar la precisión de los cálculos y elimina los errores de redondeo de punto flotante.
from decimal import Decimal, ROUND_HALF_UP
valor = Decimal('3.4567')
valor_redondeado = valor.quantize(Decimal('0.01'), rounding=ROUND_HALF_UP)
print(valor_redondeado) # Resultado: 3.46
El módulo decimal ofrece varios modos de redondeo:
- ROUND_HALF_UP — redondea alejándose de cero cuando el valor es 0.5
- ROUND_HALF_DOWN — redondea hacia cero cuando el valor es 0.5
- ROUND_HALF_EVEN — redondea al número par más cercano
- ROUND_UP — siempre redondea hacia arriba
- ROUND_DOWN — siempre redondea hacia abajo