Módulo math de Python

Módulo math de PythonProporciona una gran cantidad de funciones matemáticas comunes que se pueden usar para realizar:

  • Cálculos trigonométricos (sin / cos / tan)
  • Logaritmos y operaciones exponenciales (log / exp / pow)
  • Redondeo y truncamiento (ceil / floor / trunc)
  • Combinaciones, permutaciones y factorial (comb / perm / factorial)
  • Cálculos de distancia y geometría (dist / hypot / sqrt)

Es una de las bibliotecas estándar más utilizadas de Python para operaciones matemáticas.

se necesita recurrir almathmódulo para completarlo.

mathLas funciones del módulo devuelven valores de punto flotante, salvo que se indique explícitamente lo contrario.

Si necesitas calcular números complejos, utiliza elcmathmódulo con las funciones del mismo nombre.

Para usar las funciones de math, primero debes importarlo:

import math

Ver el contenido del módulo math:

>>> import math
>>> dir(math)
['__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'comb', 'copysign', 'cos', 'cosh', 'degrees', 'dist', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'isqrt', 'lcm', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'nextafter', 'perm', 'pi', 'pow', 'prod', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc', 'ulp']

¿Por qué usar el módulo math?

Aunque Python incluye muchos operadores básicos (como+、-、*、/), para cálculos matemáticos más complejos, por ejemplo:

  • raíz cuadrada
  • funciones trigonométricas
  • logaritmo natural
  • manejo de precisión de punto flotante

Ejemplos de uso del módulo math de Python

import math

print(math.sqrt(16))      # 4.0
print(math.pow(2, 3))     # 8.0
print(math.ceil(4.2))     # 5
print(math.floor(4.9))    # 4
print(math.sin(math.pi/2))# 1.0

El resultado es:

4.0
8.0
5
4
1.0

Constantes del módulo math

Constante Descripción
math.e Devuelve el número de Euler (2.7182...)
math.inf Devuelve un flotante de infinito positivo
math.nan Devuelve un valor flotante NaN (not a number)
math.pi π generalmente se refiere a la constante circular. PI (3.1415...)
math.tau Constante matemática τ = 6.283185..., con la precisión disponible. Tau es una constante circular, igual a 2π, la relación entre la circunferencia y el radio de un círculo.

Funciones del módulo math

Función Descripción
math.acos(x) Devuelve el arco coseno de x, el resultado está en el rango de 0 a pi.
math.acosh(x) Devuelve el arco coseno hiperbólico de x.
math.asin(x) Devuelve el arco seno de x, el resultado está en el rango de -pi/2 a pi/2.
math.asinh(x) Devuelve el arco seno hiperbólico de x.
math.atan(x) Devuelve el arco tangente de x, el resultado está en el rango de -pi/2 a pi/2.
math.atan2(y, x) Devuelve el arco tangente de las coordenadas X e Y dadas, el resultado está entre -pi y pi.
math.atanh(x) Devuelve el arco tangente hiperbólico de x.
math.ceil(x) Redondea x hacia arriba al entero más cercano
math.comb(n, k) Devuelve el número total de formas de elegir k elementos de n elementos sin repetición y sin orden.
math.copysign(x, y) Devuelve un flotante basado en el valor absoluto de x y el signo de y.
math.cos() Devuelve el coseno de x radianes.
math.cosh(x) Devuelve el coseno hiperbólico de x.
math.degrees(x) Convierte el ángulo x de radianes a grados.
math.dist(p, q) Devuelve la distancia euclidiana entre dos puntos p y q, dada como una secuencia de coordenadas (o iterable). Ambos puntos deben tener la misma dimensión.
math.erf(x) Devuelve la función de error de un número
math.erfc(x) Devuelve la función de error complementaria en x
math.exp(x) Devuelve e elevado a la potencia x, Ex, donde e = 2.718281... es la base del logaritmo natural.
math.expm1() Devuelve Ex- 1, e elevado a la potencia x, Ex, donde e = 2.718281... es la base del logaritmo natural. Esto suele ser más preciso que math.e ** x o pow(math.e, x).
math.fabs(x) Devuelve el valor absoluto de x.
math.factorial(x) Devuelve el factorial de x. Si x no es un entero o es negativo, se lanzará ValueError.
math.floor() Redondea el número hacia abajo al entero más cercano
math.fmod(x, y) Devuelve el resto de x/y
math.frexp(x) Devuelve la mantisa y el exponente de x como un par (m, e). m es un flotante y e es un entero, tal que x == m * 2**e. Si x es cero, devuelve (0.0, 0); de lo contrario, devuelve 0.5 <= abs(m) < 1.
math.fsum(iterable) Devuelve la suma de los elementos de un iterable (tupla, array, lista, etc.) como valor flotante.
math.gamma(x) Devuelve el valor de la función gamma en x.
math.gcd() Devuelve el máximo común divisor de los argumentos enteros dados.
math.hypot() Devuelve la norma euclidiana, sqrt(sum(x**2 for x in coordinates)). Esta es la longitud del vector desde el origen hasta el punto dado por las coordenadas.
math.isclose(a,b) Comprueba si dos valores están próximos entre sí; devuelve True si a y b están relativamente próximos, de lo contrario devuelve False.
math.isfinite(x) Determina si x es finito; devuelve True si x no es infinito ni NaN, de lo contrario devuelve False.
math.isinf(x) Determina si x es infinito; devuelve True si x es infinito positivo o negativo, de lo contrario devuelve False.
math.isnan() Determina si el número es NaN; devuelve True si x es NaN (no es un número), de lo contrario devuelve False.
math.isqrt() Redondea la raíz cuadrada de un número hacia abajo al entero más cercano
math.ldexp(x, i) Devuelve x * (2**i). Esto es básicamente la funcióninversa de math.frexp().
math.lgamma() Devuelve el logaritmo natural del valor absoluto de la función gamma en x.
math.log(x[, base]) Con un argumento, devuelve el logaritmo natural de x (base e).
math.log10(x) Devuelve el logaritmo de x en base 10.
math.log1p(x) Devuelve el logaritmo natural (en base e) de 1+x.
math.log2(x) Devuelve el logaritmo de x en base 2
math.perm(n, k=None) Devuelve el número total de formas de elegir k elementos de n elementos sin repetición y con orden.
math.pow(x, y) Devuelve x elevado a la potencia y.
math.prod(iterable) Calcula el producto de todos los elementos de un iterable.
math.radians(x) Convierte el ángulo x de grados a radianes.
math.remainder(x, y) Devuelve el resto de x dividido por y según el estilo IEEE 754.
math.sin(x) Devuelve el seno de x radianes.
math.sinh(x) Devuelve el seno hiperbólico de x.
math.sqrt(x) Devuelve la raíz cuadrada de x.
math.tan(x) Devuelve la tangente de x radianes.
math.tanh(x) Devuelve la tangente hiperbólica de x.
math.trunc(x) Devuelve la parte entera truncada de x, es decir, devuelve la parte entera eliminando la parte fraccionaria.
math.cbrt(x) Devuelve la raíz cúbica de x.
math.exp2(x) Devuelve 2 elevado a la potencia x, es decir, 2**x.
math.lcm(*integers) Devuelve el mínimo común múltiplo de varios enteros.
math.modf(x) Devuelve la parte fraccionaria y la parte entera de x, el resultado es una tupla (fractional, integer).
math.nextafter(x, y[, steps]) Devuelve el valor después de avanzar un número especificado de pasos flotantes desde x en dirección a y.
math.sumprod(p, q) Devuelve la suma de los productos de los elementos correspondientes de dos iterables.
math.ulp(x) Devuelve la unidad de precisión mínima (Unit in the Last Place) de x.

Notas de compatibilidad de versiones

Las siguientes funciones son nuevas en Python 3.8+ / 3.9+ / 3.11+:

  • math.comb():Python 3.8+
  • math.perm():Python 3.8+
  • math.lcm():Python 3.9+
  • math.cbrt():Python 3.11+
  • math.exp2():Python 3.11+
  • math.sumprod():Python 3.12+
Otras extensiones