31- Math en Python




Python Math

🔢 Python Math: Operaciones Fundamentales

Python, como lenguaje de programación, proporciona de forma nativa las operaciones matemáticas fundamentales que seguramente ya conoces:

  • Suma: + (ej. 5 + 3 da como resultado 8)
  • Resta: - (ej. 10 - 4 da como resultado 6)
  • Multiplicación: * (ej. 6 * 7 da como resultado 42)
  • División: / (ej. 8 / 2 da como resultado 4.0. ¡Ojo! Siempre devuelve un número de punto flotante.)
  • División Entera: // (ej. 8 // 3 da como resultado 2. Devuelve la parte entera de la división.)
  • Módulo (Resto de la división): % (ej. 8 % 3 da como resultado 2)
  • Potenciación: ** (ej. 2 ** 3 da como resultado 8)

Orden de las Operaciones:

Python sigue el orden estándar de las operaciones matemáticas (PEMDAS/BODMAS):

  1. Paréntesis / Brackets
  2. Exponentes / Orders
  3. Multiplicación y División (de izquierda a derecha)
  4. Adición y Sustracción (de izquierda a derecha)

Puedes usar paréntesis para controlar el orden en que se realizan las operaciones.

Ejemplos de Operaciones Matemáticas en Python:

      
resultado_suma = 5 + 3
print(f"5 + 3 = {resultado_suma}")

resultado_resta = 10 - 4
print(f"10 - 4 = {resultado_resta}")

resultado_multiplicacion = 6 * 7
print(f"6 * 7 = {resultado_multiplicacion}")

resultado_division = 8 / 2
print(f"8 / 2 = {resultado_division}")

resultado_division_entera = 8 // 3
print(f"8 // 3 = {resultado_division_entera}")

resultado_modulo = 8 % 3
print(f"8 % 3 = {resultado_modulo}")

resultado_potencia = 2 ** 3
print(f"2 ** 3 = {resultado_potencia}")

operacion_combinada = (10 + 2) * 3 - 6 / 2
print(f"(10 + 2) * 3 - 6 / 2 = {operacion_combinada}")
      
     

Tipos de Números en Python:

Python soporta diferentes tipos de números que son relevantes para las matemáticas:

  • Enteros (int): Números enteros sin parte decimal (ej. -5, 0, 100).
  • Números de Punto Flotante (float): Números con parte decimal (ej. 3.14, -0.5, 2.0).
  • Números Complejos (complex): Números con una parte real y una parte imaginaria (ej. 3 + 2j). Python proporciona soporte nativo para operaciones con números complejos.

Funciones Matemáticas Built-in:

Además de los operadores, Python también incluye algunas funciones matemáticas built-in que son muy útiles. Exploraremos estas funciones en el siguiente tema.

Built-in Math Functions

🛠️ Funciones Matemáticas Built-in: Herramientas Esenciales

Python incluye una serie de funciones matemáticas que están siempre disponibles para su uso sin necesidad de importar el módulo math. Aquí tienes algunas de las más importantes:

  • abs(x): Devuelve el valor absoluto de x.
  • pow(x, y): Devuelve x elevado a la potencia de y (equivalente a x**y). También puede tomar un tercer argumento opcional z para calcular (x**y) % z de manera más eficiente.
  • round(number[, ndigits]): Redondea un número al número de decimales especificado (ndigits). Si ndigits se omite o es None, devuelve el entero más cercano. Para el redondeo a la mitad, Python 3 utiliza la regla de "redondear a par".
  • min(iterable, *args): Devuelve el elemento más pequeño en un iterable o el más pequeño de dos o más argumentos.
  • max(iterable, *args): Devuelve el elemento más grande en un iterable o el más grande de dos o más argumentos.
  • sum(iterable[, start]): Suma los elementos de un iterable (como una lista o tupla) y devuelve el total. Se puede proporcionar un valor inicial opcional (start) que se suma al resultado.

Ejemplos de Funciones Matemáticas Built-in:

      
valor_negativo = -10
valor_absoluto = abs(valor_negativo)
print(f"El valor absoluto de {valor_negativo} es: {valor_absoluto}")

potencia1 = pow(2, 5)
print(f"2 elevado a la 5 es: {potencia1}")

potencia_modulo = pow(10, 3, 7)  # (10**3) % 7 = 1000 % 7 = 6
print(f"(10**3) % 7 es: {potencia_modulo}")

numero_a_redondear = 3.14159
redondeo_2_decimales = round(numero_a_redondear, 2)
print(f"{numero_a_redondear} redondeado a 2 decimales es: {redondeo_2_decimales}")

numeros = [3, 1, 4, 1, 5, 9, 2, 6]
minimo = min(numeros)
maximo = max(numeros)
print(f"El mínimo de la lista es: {minimo}")
print(f"El máximo de la lista es: {maximo}")

suma_de_numeros = sum(numeros)
print(f"La suma de los números es: {suma_de_numeros}")

suma_con_inicio = sum(numeros, 10)
print(f"La suma de los números con inicio en 10 es: {suma_con_inicio}")
      
     

Cuándo Usar las Funciones Built-in:

Estas funciones son ideales para operaciones matemáticas básicas y directas que no requieren funcionalidades más avanzadas como funciones trigonométricas, logarítmicas, etc. Para estas últimas, necesitaremos recurrir al módulo math.

En el siguiente tema, exploraremos el poderoso **Módulo math** de Python, que amplía significativamente las capacidades matemáticas del lenguaje.

The Math Module

➕ El Módulo math: Funciones Matemáticas Avanzadas

Para utilizar las funciones y constantes definidas en el módulo math, primero debes importarlo en tu script:

      
import math
      
     

Constantes Matemáticas en el Módulo math:

  • math.pi: El número pi (π), aproximadamente 3.14159.
  • math.e: La base de los logaritmos naturales (e), aproximadamente 2.71828.
  • math.tau: El número tau (τ), igual a 2π, aproximadamente 6.28318. (Introducido en Python 3.6)
  • math.inf: Infinito positivo de punto flotante.
  • math.nan: Un valor de "no es un número" (NaN) de punto flotante.

Funciones Numéricas en el Módulo math:

  • math.ceil(x): Devuelve el entero más pequeño mayor o igual que x.
  • math.floor(x): Devuelve el entero más grande menor o igual que x.
  • math.trunc(x): Devuelve la parte entera de x, eliminando la parte decimal.
  • math.fabs(x): Devuelve el valor absoluto de x (similar a abs(), pero siempre devuelve un float).
  • math.factorial(x): Devuelve el factorial de x.
  • math.gcd(a, b): Devuelve el máximo común divisor de los enteros a y b.
  • math.exp(x): Devuelve $e^x$.
  • math.log(x[, base]): Devuelve el logaritmo de x en la base especificada (si no se proporciona la base, devuelve el logaritmo natural).
  • math.log10(x): Devuelve el logaritmo en base 10 de x.
  • math.sqrt(x): Devuelve la raíz cuadrada de x.

Funciones Trigonométricas en el Módulo math (los ángulos se asumen en radianes):

  • math.sin(x): Devuelve el seno de x.
  • math.cos(x): Devuelve el coseno de x.
  • math.tan(x): Devuelve la tangente de x.
  • math.asin(x): Devuelve el arcoseno de x.
  • math.acos(x): Devuelve el arcocoseno de x.
  • math.atan(x): Devuelve el arcotangente de x.
  • math.degrees(x): Convierte el ángulo x de radianes a grados.
  • math.radians(x): Convierte el ángulo x de grados a radianes.

Ejemplos de Uso del Módulo math:

      
import math

radio = 5
area = math.pi * radio ** 2
print(f"El área de un círculo con radio {radio} es: {area}")

logaritmo_natural = math.log(10)
print(f"El logaritmo natural de 10 es: {logaritmo_natural}")

raiz_cuadrada = math.sqrt(16)
print(f"La raíz cuadrada de 16 es: {raiz_cuadrada}")

seno_de_pi_medio = math.sin(math.pi / 2)
print(f"El seno de pi/2 es: {seno_de_pi_medio}")

grados = 90
radianes = math.radians(grados)
print(f"{grados} grados en radianes son: {radianes}")

factorial_de_5 = math.factorial(5)
print(f"El factorial de 5 es: {factorial_de_5}")

maximo_comun_divisor = math.gcd(12, 18)
print(f"El máximo común divisor de 12 y 18 es: {maximo_comun_divisor}")
      
     

El módulo math es una herramienta fundamental para cualquier tarea que requiera cálculos matemáticos más allá de las operaciones básicas. Es importante consultar la documentación oficial para conocer todas las funciones y constantes que ofrece.

En el siguiente tema, veremos una referencia completa del módulo math para que tengas una visión general de todas sus capacidades.

Complete Math Module Reference

📚 Referencia Completa del Módulo math

A continuación, se presenta una lista más exhaustiva de las funciones y constantes disponibles en el módulo math de Python.

Constantes:

  • math.pi: ($\pi$) La relación entre la circunferencia de un círculo y su diámetro.
  • math.e: ($e$) La base de los logaritmos naturales.
  • math.tau: ($\tau$) Igual a $2\pi$.
  • math.inf: Infinito positivo de punto flotante.
  • math.nan: Un valor de "no es un número" (NaN) de punto flotante.

Funciones Numéricas:

  • math.ceil(x): Devuelve el techo de x, el entero más pequeño mayor o igual que x.
  • math.copysign(x, y): Devuelve un float con la magnitud (valor absoluto) de x pero el signo de y.
  • math.fabs(x): Devuelve el valor absoluto de x.
  • math.factorial(x): Devuelve el factorial de x. Genera un ValueError si x no es entero o es negativo.
  • math.floor(x): Devuelve el suelo de x, el entero más grande menor o igual que x.
  • math.fmod(x, y): Devuelve el resto de la división de x por y. El resultado tiene el signo de x.
  • math.frexp(x): Devuelve la mantisa y el exponente de x como el par (m, e) donde x == m * 2**e y 0.5 <= abs(m) < 1.
  • math.fsum(iterable): Devuelve una suma de punto flotante precisa de los valores en el iterable. Evita la pérdida de precisión al sumar muchos números pequeños.
  • math.gcd(a, b): Devuelve el máximo común divisor de los enteros a y b.
  • math.isclose(a, b, *, rel_tol=1e-09, abs_tol=0.0): Devuelve True si los valores a y b están cerca el uno del otro, y False en caso contrario. Útil para comparar floats.
  • math.isfinite(x): Devuelve True si x no es ni infinito ni NaN, y False en caso contrario.
  • math.isinf(x): Devuelve True si x es infinito positivo o negativo, y False en caso contrario.
  • math.isnan(x): Devuelve True si x es un NaN, y False en caso contrario.
  • math.isqrt(n): Devuelve la parte entera de la raíz cuadrada de un entero no negativo n.
  • math.ldexp(x, i): Devuelve x * 2**i. Es esencialmente la inversa de math.frexp().
  • math.modf(x): Devuelve las partes fraccionaria y entera de x. Ambos resultados llevan el signo de x y son floats.
  • math.pow(x, y): Devuelve x elevado a la potencia de y.
  • math.remainder(x, y): Devuelve el resto de estilo IEEE 754 de x con respecto a y.
  • math.round(x[, n]): Redondea x a n decimales. Si n se omite o es None, devuelve el entero más cercano a x.
  • math.trunc(x): Devuelve el valor de x truncado a un entero (hacia cero).

Funciones Logarítmicas y Exponenciales:

  • math.exp(x): Devuelve $e^x$.
  • math.expm1(x): Devuelve $e^x - 1$. Útil para pequeñas valores de x donde la precisión de exp(x) - 1 podría perderse.
  • math.log(x[, base]): Devuelve el logaritmo de x en la base dada. Si la base no se especifica, devuelve el logaritmo natural (base e) de x.
  • math.log1p(x): Devuelve el logaritmo natural de 1+x. Útil para valores de x cercanos a cero.
  • math.log10(x): Devuelve el logaritmo en base 10 de x.
  • math.log2(x): Devuelve el logaritmo en base 2 de x.
  • math.pow(x, y): (Ya mencionada en funciones numéricas)
  • math.sqrt(x): Devuelve la raíz cuadrada de x.

Funciones Trigonométricas:

  • math.acos(x): Devuelve el arco coseno de x, en radianes.
  • math.asin(x): Devuelve el arco seno de x, en radianes.
  • math.atan(x): Devuelve el arco tangente de x, en radianes.
  • math.atan2(y, x): Devuelve atan(y / x), en radianes, pero considera el signo de ambos x e y.
  • math.cos(x): Devuelve el coseno de x radianes.
  • math.hypot(x, y): Devuelve la norma euclidiana, $\sqrt{x^2 + y^2}$.
  • math.sin(x): Devuelve el seno de x radianes.
  • math.tan(x): Devuelve la tangente de x radianes.
  • math.degrees(x): Convierte el ángulo x de radianes a grados.
  • math.radians(x): Convierte el ángulo x de grados a radianes.

Funciones Hiperbólicas:

  • math.acosh(x): Devuelve el arco coseno hiperbólico de x.
  • math.asinh(x): Devuelve el arco seno hiperbólico de x.
  • math.atanh(x): Devuelve el arco tangente hiperbólico de x.
  • math.cosh(x): Devuelve el coseno hiperbólico de x.
  • math.sinh(x): Devuelve el seno hiperbólico de x.
  • math.tanh(x): Devuelve la tangente hiperbólica de x.

Funciones Especiales:

  • math.erf(x): Devuelve la función de error en x.
  • math.erfc(x): Devuelve la función de error complementaria en x.
  • math.gamma(x): Devuelve la función Gamma en x.
  • math.lgamma(x): Devuelve el logaritmo natural del valor absoluto de la función Gamma en x.

Esta referencia te proporciona una visión general de la riqueza de funcionalidades matemáticas que el módulo math pone a tu disposición en Python. ¡Explora la documentación oficial para obtener detalles más profundos sobre cada función!

Con esto, hemos completado nuestra exploración del módulo math. ¿Tienes alguna pregunta o te gustaría repasar algún concepto antes de que pasemos a un nuevo tema?




Publicar un comentario

0 Comentarios