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

    notebook com código saindo da tela
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    Variables en Python: guía completa para principiantes

    Aprende variables en Python: asignación, nombres, tipos, conversiones, referencias, mutabilidad, alcance, constantes, None y errores frecuentes.

    Ler mais

    Tempo de leitura: 4 minutos
    12/07/2026
    Diferença entre operadores is e == em Python
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    == vs is en Python: diferencia entre igualdad e identidad

    Entiende la diferencia entre == e is en Python, igualdad, identidad, None, interning, copias superficiales, deepcopy y objetos personalizados.

    Ler mais

    Tempo de leitura: 4 minutos
    12/07/2026
    Menu interativo no terminal criado com Python
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    Cómo crear un menú interactivo en el terminal con Python

    Crea un menú interactivo en Python con while, funciones, diccionarios, validación, submenús, persistencia JSON y manejo seguro de errores.

    Ler mais

    Tempo de leitura: 4 minutos
    12/07/2026
    ícone de loop com o texto 'While' abaixo
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    Bucles while en Python: guía práctica para principiantes

    Aprende bucles while en Python con condiciones, validación, menús, break, continue, else, centinelas, reintentos y buenas prácticas.

    Ler mais

    Tempo de leitura: 5 minutos
    11/07/2026
    Imagem de um quadro negro com várias interrogações no lugar de lâmpadas, e uma lâmpada conectada no meio
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    If, elif y else en Python: guía de decisiones

    Aprende if, elif y else en Python con comparaciones, operadores lógicos, validación, rangos, menús, retornos tempranos y pruebas.

    Ler mais

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

    JSON en Python: leer, escribir y validar datos

    Aprende JSON en Python con load, loads, dump, dumps, archivos UTF-8, validación, APIs, Decimal, fechas y escritura segura.

    Ler mais

    Tempo de leitura: 4 minutos
    11/07/2026