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

    Logo do Python com as palavras global e local
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    Alcance de variables en Python: entiende la regla LEGB

    Entiende el alcance de variables en Python con la regla LEGB, global, nonlocal, closures, sombreado, mutabilidad y UnboundLocalError.

    Ler mais

    Tempo de leitura: 5 minutos
    11/07/2026
    Operações matemáticas usando o módulo math em Python
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    Módulo math en Python: operaciones matemáticas esenciales

    Aprende el módulo math en Python: raíces, potencias, redondeos, trigonometría, logaritmos, constantes, isclose y ejemplos prácticos.

    Ler mais

    Tempo de leitura: 4 minutos
    11/07/2026
    Geração de números aleatórios seguros usando secrets em Python
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    Módulo secrets en Python: números y tokens seguros

    Aprende secrets en Python para generar contraseñas, códigos y tokens seguros con randbelow, choice, token_hex, token_urlsafe y compare_digest.

    Ler mais

    Tempo de leitura: 5 minutos
    11/07/2026
    Uso do operador walrus para atribuições inline em Python
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    Operador walrus en Python: guía con ejemplos

    Aprende el operador walrus := en Python: condiciones, while, comprensiones, lectura por bloques, regex, alcance y buenas prácticas.

    Ler mais

    Tempo de leitura: 5 minutos
    11/07/2026
    Uso da função zip para combinar listas em Python
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    zip() en Python: combina listas e iterables correctamente

    Aprende zip() en Python para combinar listas, crear diccionarios, usar strict, zip_longest, desempaquetar valores y evitar pérdidas silenciosas.

    Ler mais

    Tempo de leitura: 4 minutos
    11/07/2026
    Uso do módulo time para controlar tempo em scripts Python
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    Módulo time en Python: pausas, timestamps y rendimiento

    Aprende el módulo time en Python: timestamps, sleep, monotonic, perf_counter, struct_time, strftime y buenas prácticas para medir tiempo.

    Ler mais

    Tempo de leitura: 5 minutos
    11/07/2026