Este capítulo contiene conceptos clave y ejercicios prácticos para entender y aplicar las operaciones matemáticas en Python. Las matemáticas son fundamentales en programación para resolver problemas reales. En Python, podemos usar:
Operadores aritméticos básicos (
+, -, *, /, //, %, **) para realizar cálculos simples.Funciones matemáticas como
mean(),median(),std(),abs(),round(),max(),min(), etcLibrerías matemáticas como
math,cmathostatisticspara operaciones más avanzadas.
Operadores matemáticos básicos¶
Vamos a repasar los operadores matemáticos básicos:
Suma:
+Resta:
-Multiplicación:
*División normal:
/División entera:
//(trunca el resultado a un número entero)Módulo (resto):
%(devuelve el resto de la división)Potencia:
**
Ejemplo de la suma y distintas formas de presentación:¶
# Definimos dos variables
a = 10
b = 5
# Diferentes formas de imprimir la suma
# Forma 1: Imprimir directamente la suma
print(a+b)
# Forma 2: Guardar el resultado en una variable y luego imprimirla
resultado = a + b
print(resultado)
# Forma 3: Imprimir con un mensaje descriptivo
print("La suma de a y b es:", a + b)
print(f"La suma de {a} y {b} es: {a + b}")15
15
La suma de a y b es: 15
La suma de 10 y 5 es: 15
Ejemplos de operaciones básicas¶
# Operaciones básicas en Python
a = 20
b = 3
print(f"Suma: {a} + {b} = {a + b}")
print(f"Resta: {a} - {b} = {a - b}")
print(f"Multiplicación: {a} * {b} = {a * b}")
print(f"División: {a} / {b} = {a / b}")
print(f"División entera: {a} // {b} = {a // b}")
print(f"Módulo: {a} % {b} = {a % b}")
print(f"Potencia: {a} ** {b} = {a ** b}")Suma: 20 + 3 = 23
Resta: 20 - 3 = 17
Multiplicación: 20 * 3 = 60
División: 20 / 3 = 6.666666666666667
División entera: 20 // 3 = 6
Módulo: 20 % 3 = 2
Potencia: 20 ** 3 = 8000
Funciones matemáticas avanzadas¶
- Biblioteca math()¶
math es una biblioteca estándar (como time, calendar, statistics...), por lo que no se necesita instalar nada; solo importarla con import. Esta biblioteca proporciona funciones matemáticas básicas y algunas avanzadas, como trigonometría, logaritmos, exponenciales, etc.
import math
x = 4.71
print(math.ceil(x)) # 5
print(math.floor(x)) # 4
print(math.trunc(x)) # 4
y = -6
print(math.fabs(y)) # 6.05
4
4
6.0
El módulo math ofrece funciones útiles como:
sqrt(): raíz cuadradapow(): potencia (igual que**)sin(),cos(),tan(): funciones trigonométricasceil(),floor(): redondeo hacia arriba/abajoround(): redondeo normal
import math
print(f"Raíz cuadrada de 16: {math.sqrt(16)}")
print(f"Potencia: 2 elevado a 8: {math.pow(2,8)}")
print(f"Redondeo hacia arriba de 4.3: {math.ceil(4.3)}")
print(f"Redondeo hacia abajo de 4.7: {math.floor(4.7)}")
print(f"Redondeo con round(4.567, 2): {round(4.567, 2)}") # Redondeo con dos decimalesRaíz cuadrada de 16: 4.0
Potencia: 2 elevado a 8: 256.0
Redondeo hacia arriba de 4.3: 5
Redondeo hacia abajo de 4.7: 4
Redondeo con round(4.567, 2): 4.57
Todas las funciones de math()
| Categoría | Función / Constante | Descripción |
|---|---|---|
| Constantes | math.pi | π (3.141592...) |
math.e | e (2.718281...) | |
math.tau | 2π | |
math.inf | Infinito | |
math.nan | Not a Number | |
| Redondeo / Enteros | math.ceil(x) | Redondea hacia arriba |
math.floor(x) | Redondea hacia abajo | |
math.trunc(x) | Elimina la parte decimal | |
math.fabs(x) | Valor absoluto | |
| Potencias / Raíces | math.pow(x, y) | Potencia x^y |
math.sqrt(x) | Raíz cuadrada | |
math.isqrt(x) | Raíz cuadrada entera | |
| Logaritmos / Exponenciales | math.exp(x) | e^x |
math.log(x, base) | Logaritmo en base especificada | |
math.log10(x) | Logaritmo base 10 | |
math.log2(x) | Logaritmo base 2 | |
| Trigonometría | math.sin(x) | Seno (x en radianes) |
math.cos(x) | Coseno | |
math.tan(x) | Tangente | |
| Trigonometría inversa | math.asin(x) | Arco seno (resultado en radianes) |
math.acos(x) | Arco coseno | |
math.atan(x) | Arco tangente | |
math.atan2(y, x) | Arco tangente considerando cuadrantes | |
| Conversión grados/radianes | math.radians(x) | Convierte grados a radianes |
math.degrees(x) | Convierte radianes a grados | |
| Factoriales / combinatoria | math.factorial(x) | Factorial de x |
math.comb(n, k) | Combinaciones C(n, k) | |
math.perm(n, k) | Permutaciones P(n, k) | |
| Máximos / Mínimos / Otros | math.gcd(a, b) | Máximo común divisor |
math.lcm(a, b) | Mínimo común múltiplo | |
math.fmod(x, y) | Módulo (resto) | |
math.isfinite(x) | True si x es finito | |
math.isnan(x) | True si x es NaN | |
math.isinf(x) | True si x es infinito |
- Biblioteca statistics()¶
La biblioteca statistics() de Python forma parte de la biblioteca estándar, y sirve para hacer cálculos estadísticos básicos sobre colecciones de datos numéricos (listas, tuplas, etc.). Se importa así:
import statisticsEl módulo ´statistics´ ofrece funciones útiles como:
mean(): media aritméticamedian(): mediana (valor central)mode(): moda (valor más frecuente)stdev(): desviación estándar (muestral)variance(): varianza muestralquantiles(): cuantiles (ej. cuartiles, percentiles)
# importar la biblioteca estándar statistics pero con un alias (en este caso stats)
import statistics as stats
# Datos de ejemplo. Puntos obtenidos por un jugador de baloncesto en 10 partidos
datos = [12, 9, 15, 12, 23, 22, 16, 23, 12, 26]
# Valores estadísticos
print("Datos:", datos)
print("Media:", stats.mean(datos))
print("Mediana:", stats.median(datos))
print("Moda:", stats.mode(datos))
print("Varianza:", stats.variance(datos))
print("Desviación estándar:", stats.stdev(datos))
print("Cuartiles:", stats.quantiles(datos, n=4))Datos: [12, 9, 15, 12, 23, 22, 16, 23, 12, 26]
Media: 17
Mediana: 15.5
Moda: 12
Varianza: 35.77777777777778
Desviación estándar: 5.981452814975453
Cuartiles: [12.0, 15.5, 23.0]
Todas las funciones de statistics()
| Categoría | Función | Descripción |
|---|---|---|
| Tendencia central | statistics.mean(data) | Media aritmética |
statistics.fmean(data) | Media rápida en coma flotante | |
statistics.median(data) | Mediana (valor central) | |
statistics.median_low(data) | Mediana baja (el menor de los dos centrales) | |
statistics.median_high(data) | Mediana alta (el mayor de los dos centrales) | |
statistics.mode(data) | Moda (valor más frecuente) | |
statistics.multimode(data) | Lista con todas las modas | |
| Dispersión | statistics.stdev(data) | Desviación estándar muestral |
statistics.pstdev(data) | Desviación estándar poblacional | |
statistics.variance(data) | Varianza muestral | |
statistics.pvariance(data) | Varianza poblacional | |
statistics.quantiles(data, n=4) | Cuantiles (ej. cuartiles si n=4) | |
| Medias especiales | statistics.geometric_mean(data) | Media geométrica |
statistics.harmonic_mean(data) | Media armónica | |
| Relaciones entre variables | statistics.correlation(x, y) | Correlación entre dos listas (≥ Py 3.10) |
statistics.covariance(x, y) | Covarianza entre dos listas (≥ Py 3.10) | |
statistics.linear_regression(x,y) | Regresión lineal (pendiente e intercepto, ≥ Py 3.10) |
Ejercicios de ejemplo¶
Ejercicio 1: Calcula el área de un círculo con radio 7 cm.
Ejercicio 2: Calcula la distancia entre dos puntos (x1, y1) y (x2, y2).
Ejercicio 3: Convierte grados Celsius a Fahrenheit.
Ejercicio 4: Calcula la media de un conjunto de números.
Ejercicio 5: Calcula la potencia de un número elevado a otro.
Vamos a resolver uno de ejemplo:
# Ejemplo para el área de un círculo
import math
radio = 7
area = math.pi * radio **2
print(f"Área del círculo con radio {radio} cm: {area:.2f} cm2") # {area:.2f} formatea el área redondeado a 2 decimalesÁrea del círculo con radio 7 cm: 153.94 cm2