Módulo math en Python: operaciones y ejemplos

Publicado el: 11/07/2026
Tempo de leitura: 4 minutos
Operações matemáticas usando o módulo math em Python

El módulo math en Python reúne funciones matemáticas para raíces, potencias, redondeos, trigonometría, logaritmos, combinatoria y comprobaciones numéricas. Forma parte de la biblioteca estándar, por lo que no necesita instalación.

Muchas operaciones básicas pueden escribirse con operadores incorporados, pero math ofrece algoritmos claros y funciones especializadas. Es útil en cálculos científicos, geometría, estadísticas sencillas, simulaciones y validación de resultados con floats.

Importar el módulo

import math

print(math.pi)
print(math.e)

La documentación oficial del módulo math describe cada función y sus restricciones.

Constantes matemáticas

El módulo proporciona varias constantes:

import math

print(math.pi)
print(math.e)
print(math.tau)
print(math.inf)
print(math.nan)
  • pi: relación entre la circunferencia y el diámetro.
  • e: base de los logaritmos naturales.
  • tau: equivalente a dos veces pi.
  • inf: infinito positivo.
  • nan: valor numérico indefinido.

Raíz cuadrada

import math

print(math.sqrt(81))
print(math.sqrt(2))

math.sqrt() espera un valor no negativo. Para números negativos, el módulo cmath trabaja con números complejos.

Potencias

Python ya posee el operador **:

print(2 ** 8)

math.pow() convierte los argumentos a float:

print(math.pow(2, 8))

Para enteros exactos grandes, el operador ** suele ser preferible. La guía de enteros en Python explica cómo el lenguaje representa números sin un límite fijo de dígitos.

Redondeo con floor, ceil y trunc

value = 7.8
negative = -7.8

print(math.floor(value))
print(math.ceil(value))
print(math.trunc(value))

print(math.floor(negative))
print(math.ceil(negative))
print(math.trunc(negative))
  • floor() redondea hacia menos infinito.
  • ceil() redondea hacia más infinito.
  • trunc() elimina la parte decimal hacia cero.

Estos comportamientos son diferentes para números negativos. No los intercambies con int() sin revisar el requisito.

Comparar floats con isclose()

Los floats son aproximaciones binarias. Por eso una igualdad directa puede fallar:

print(0.1 + 0.2 == 0.3)

Utiliza math.isclose() cuando una diferencia pequeña sea aceptable:

print(math.isclose(0.1 + 0.2, 0.3))

Puedes definir tolerancias:

math.isclose(
    measured,
    expected,
    rel_tol=1e-9,
    abs_tol=1e-12,
)

La guía de floats en Python explica precisión, Decimal y redondeo.

Comprobar valores especiales

values = [1.5, math.inf, math.nan, -3.0]

for value in values:
    print(
        value,
        math.isfinite(value),
        math.isinf(value),
        math.isnan(value),
    )

No compruebes NaN con igualdad, porque nan == nan devuelve falso.

Suma precisa con fsum()

values = [0.1] * 10

print(sum(values))
print(math.fsum(values))

math.fsum() reduce el error acumulado en muchas sumas de punto flotante. No convierte el cálculo en aritmética decimal exacta, pero suele mejorar el resultado.

Producto de una colección

quantities = [2, 3, 4]
print(math.prod(quantities))

prod() multiplica todos los elementos. También admite un valor inicial:

print(math.prod([2, 3, 4], start=10))

Máximo común divisor y mínimo común múltiplo

print(math.gcd(48, 18))
print(math.lcm(12, 18))

Estas funciones son útiles para simplificar fracciones, sincronizar ciclos y resolver problemas de divisibilidad.

Factorial y combinatoria

print(math.factorial(5))
print(math.comb(10, 3))
print(math.perm(10, 3))
  • factorial(n): producto de 1 hasta n.
  • comb(n, k): combinaciones sin considerar el orden.
  • perm(n, k): selecciones donde el orden importa.

Los argumentos deben ser enteros no negativos.

Logaritmos

print(math.log(math.e))
print(math.log(8, 2))
print(math.log10(1000))
print(math.log2(1024))

Los logaritmos requieren valores positivos. log1p(x) calcula log(1 + x) con mejor precisión cuando x es pequeño:

print(math.log1p(1e-12))

Exponenciales

print(math.exp(1))
print(math.expm1(1e-10))

expm1(x) calcula e**x - 1 con mejor precisión para valores pequeños.

Trigonometría

Las funciones trigonométricas utilizan radianes:

angle_degrees = 30
angle_radians = math.radians(angle_degrees)

print(math.sin(angle_radians))
print(math.cos(angle_radians))
print(math.tan(angle_radians))

Convierte de vuelta:

print(math.degrees(math.pi / 2))

Las funciones inversas son asin(), acos() y atan(). Para un ángulo que respete el cuadrante, utiliza atan2(y, x).

Distancia e hipotenusa

print(math.hypot(3, 4))

point_a = (2, 3)
point_b = (8, 11)

print(math.dist(point_a, point_b))

hypot() admite más dimensiones en versiones modernas. dist() calcula distancia euclidiana entre dos puntos de igual dimensión.

Ejemplo: calcular áreas

import math


def circle_area(radius):
    if radius < 0:
        raise ValueError("El radio no puede ser negativo")

    return math.pi * radius ** 2


def sphere_volume(radius):
    if radius < 0:
        raise ValueError("El radio no puede ser negativo")

    return 4 / 3 * math.pi * radius ** 3


print(f"Área: {circle_area(5):.2f}")
print(f"Volumen: {sphere_volume(5):.2f}")

La guía de funciones en Python explica validación, parámetros y retornos.

Ejemplo: distancia entre coordenadas

import math


def distance_between(x1, y1, x2, y2):
    return math.hypot(x2 - x1, y2 - y1)


print(distance_between(2, 3, 8, 11))

Este cálculo puede utilizarse para juegos, geometría, gráficos y detección de proximidad. La guía de Pygame para principiantes muestra cómo aplicar coordenadas en proyectos visuales.

Ejemplo: cuota de crecimiento compuesto

import math

initial = 1000
annual_rate = 0.05
years = 10

future = initial * math.pow(1 + annual_rate, years)
print(f"Valor futuro: {future:.2f}")

Este ejemplo es educativo. Los sistemas financieros reales necesitan reglas de precisión y redondeo del dominio, normalmente con Decimal.

Math frente a NumPy

math está orientado principalmente a valores individuales. NumPy trabaja con arrays completos:

import numpy as np

angles = np.array([0, np.pi / 2, np.pi])
print(np.sin(angles))

Para análisis tabular y cálculos vectorizados, consulta análisis de datos con NumPy y Pandas.

Math frente a cmath

math.sqrt(-1) genera un error. Para números complejos:

import cmath

print(cmath.sqrt(-1))

Errores frecuentes

  • Pasar grados a funciones que esperan radianes.
  • Comparar floats con igualdad exacta.
  • Confundir floor() con truncamiento.
  • Usar math.pow() cuando se necesitan enteros exactos.
  • Calcular raíz o logaritmo fuera de su dominio.
  • No comprobar NaN e infinito en datos importados.
  • Utilizar math para arrays cuando NumPy sería más apropiado.

Referencia adicional

La guía oficial sobre punto flotante explica por qué muchas fracciones decimales son aproximadas.

Conclusión

El módulo math proporciona funciones fiables para raíces, redondeos, trigonometría, logaritmos, combinatoria y comprobaciones numéricas. Aprende primero sqrt(), floor(), ceil(), isclose(), pi y las conversiones de ángulos. Después incorpora fsum(), gcd(), comb() y las funciones logarítmicas según el problema.

Compartilhe:

Facebook
WhatsApp
Twitter
LinkedIn

Contenido del artículo

    Artículos relacionados

    Uso do with para abrir arquivos com segurança em Python
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    Sentencia with en Python: archivos seguros y contextos

    Aprende la sentencia with en Python para abrir archivos con seguridad, manejar errores, usar context managers, contextlib y varios recursos.

    Ler mais

    Tempo de leitura: 4 minutos
    11/07/2026
    Vários logos do Python um ao lado do outro
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    Listas en Python: métodos, slicing y ejemplos

    Aprende listas en Python: creación, índices, slicing, métodos, ordenación, copias, comprensiones, listas anidadas y ejemplos prácticos.

    Ler mais

    Tempo de leitura: 4 minutos
    11/07/2026
    Programador pensando enquanto analisa código em dois monitores
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    Cómo aprender programación desde cero: guía práctica

    Aprende programación desde cero con una ruta práctica de lógica, herramientas, ejercicios, proyectos, depuración, Git y hábitos de estudio.

    Ler mais

    Tempo de leitura: 6 minutos
    11/07/2026
    ícone de loop com o texto 'For' abaixo
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    Bucles for en Python: guía completa

    Aprende bucles for en Python con range, enumerate, zip, diccionarios, break, continue, bucles anidados y ejemplos prácticos.

    Ler mais

    Tempo de leitura: 4 minutos
    11/07/2026
    Manipulação e formatação de strings em Python
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    Strings en Python: guía completa para principiantes

    Aprende strings en Python: creación, índices, slicing, métodos, búsqueda, formato, Unicode, codificación y ejemplos prácticos.

    Ler mais

    Tempo de leitura: 3 minutos
    11/07/2026
    código Python de uma tupla com o texto separado formando a frase "O que são tuplas?"
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    Tuplas en Python: guía completa para principiantes

    Aprende tuplas en Python: creación, índices, slicing, inmutabilidad, desempaquetado, métodos, NamedTuple y ejemplos prácticos.

    Ler mais

    Tempo de leitura: 4 minutos
    11/07/2026