Operadores Aritméticos
Aprende a realizar cálculos matemáticos en Python utilizando operadores aritméticos, desde operaciones básicas hasta técnicas más avanzadas.
Cristian Escalante
Última actualización: 18 de mayo de 2025
Operadores Aritméticos en Python
Los operadores aritméticos son símbolos especiales en Python que se utilizan para realizar operaciones matemáticas. Python proporciona un conjunto completo de operadores para realizar cálculos desde los más simples hasta los más complejos.
Operadores Aritméticos Básicos
Suma (+)
El operador +
se utiliza para sumar dos valores:
# Suma de números enteros
a = 5
b = 3
suma = a + b
print(suma) # Resultado: 8
# Suma de números flotantes
x = 2.5
y = 1.7
suma_flotante = x + y
print(suma_flotante) # Resultado: 4.2
# Suma de variables de diferentes tipos
entero = 10
flotante = 3.5
resultado = entero + flotante
print(resultado) # Resultado: 13.5
También se puede usar para concatenar cadenas:
# Concatenación de cadenas
nombre = "Python"
version = "3.10"
nombre_completo = nombre + " " + version
print(nombre_completo) # Resultado: "Python 3.10"
Resta (-)
El operador -
se utiliza para restar un valor de otro:
# Resta de números enteros
a = 10
b = 4
resta = a - b
print(resta) # Resultado: 6
# Resta de números flotantes
x = 5.7
y = 2.3
resta_flotante = x - y
print(resta_flotante) # Resultado: 3.4
# Números negativos
negativo = -a
print(negativo) # Resultado: -10
Multiplicación (*)
El operador *
se utiliza para multiplicar dos valores:
# Multiplicación de números enteros
a = 6
b = 7
multiplicacion = a * b
print(multiplicacion) # Resultado: 42
# Multiplicación de números flotantes
x = 2.5
y = 3.0
multiplicacion_flotante = x * y
print(multiplicacion_flotante) # Resultado: 7.5
También se puede usar para repetir cadenas:
# Repetición de cadenas
simbolo = "*"
linea = simbolo * 10
print(linea) # Resultado: "**********"
# Repetición de listas
lista = [1, 2]
repetida = lista * 3
print(repetida) # Resultado: [1, 2, 1, 2, 1, 2]
División (/)
El operador /
se utiliza para dividir un valor por otro. En Python 3, la división siempre devuelve un número flotante, incluso si los operandos son enteros:
# División de números enteros
a = 10
b = 2
division = a / b
print(division) # Resultado: 5.0 (nota: es un float)
# División de números flotantes
x = 7.5
y = 2.5
division_flotante = x / y
print(division_flotante) # Resultado: 3.0
# División que no resulta en un número entero
c = 10
d = 3
division_inexacta = c / d
print(division_inexacta) # Resultado: 3.3333333333333335
División entera (//)
El operador //
realiza una división y redondea el resultado hacia abajo al entero más cercano:
# División entera de números enteros
a = 10
b = 3
division_entera = a // b
print(division_entera) # Resultado: 3
# División entera de números flotantes
x = 7.5
y = 2.0
division_entera_flotante = x // y
print(division_entera_flotante) # Resultado: 3.0
# División entera con números negativos
negativo = -10 // 3
print(negativo) # Resultado: -4 (redondea hacia abajo, no hacia cero)
Módulo (%)
El operador %
devuelve el resto de la división entre dos números:
# Módulo de números enteros
a = 10
b = 3
resto = a % b
print(resto) # Resultado: 1 (10 = 3*3 + 1)
# Módulo de números flotantes
x = 7.5
y = 2.0
resto_flotante = x % y
print(resto_flotante) # Resultado: 1.5 (7.5 = 2.0*3 + 1.5)
# Verificar si un número es par o impar
numero = 15
es_par = numero % 2 == 0
print(es_par) # Resultado: False (15 es impar)
Exponente (**)
El operador **
se utiliza para elevar un número a una potencia:
# Potencia con números enteros
base = 2
exponente = 3
potencia = base ** exponente
print(potencia) # Resultado: 8 (2³ = 2*2*2 = 8)
# Potencia con números flotantes
x = 4.0
y = 0.5
raiz_cuadrada = x ** y
print(raiz_cuadrada) # Resultado: 2.0 (4^0.5 = √4 = 2)
# Potencia con exponente negativo
inverso = 2 ** -1
print(inverso) # Resultado: 0.5 (2⁻¹ = 1/2 = 0.5)
Precedencia de Operadores
En Python, los operadores aritméticos siguen un orden de precedencia específico:
- Paréntesis
()
- Exponente
**
- Multiplicación
*
, División/
, División entera//
, Módulo%
- Suma
+
, Resta-
# Ejemplo de precedencia
resultado = 2 + 3 * 4
print(resultado) # Resultado: 14 (no 20, porque * tiene mayor precedencia)
# Uso de paréntesis para cambiar la precedencia
resultado_con_parentesis = (2 + 3) * 4
print(resultado_con_parentesis) # Resultado: 20
Operadores de Asignación Combinados
Python proporciona operadores de asignación combinados para simplificar operaciones comunes:
# Asignación con suma
x = 10
x += 5 # Equivalente a: x = x + 5
print(x) # Resultado: 15
# Asignación con resta
y = 20
y -= 8 # Equivalente a: y = y - 8
print(y) # Resultado: 12
# Asignación con multiplicación
z = 3
z *= 4 # Equivalente a: z = z * 4
print(z) # Resultado: 12
# Asignación con división
a = 15
a /= 3 # Equivalente a: a = a / 3
print(a) # Resultado: 5.0
# Asignación con división entera
b = 15
b //= 4 # Equivalente a: b = b // 4
print(b) # Resultado: 3
# Asignación con módulo
c = 17
c %= 5 # Equivalente a: c = c % 5
print(c) # Resultado: 2
# Asignación con exponente
d = 2
d **= 3 # Equivalente a: d = d ** 3
print(d) # Resultado: 8
Funciones Matemáticas Incorporadas
Además de los operadores, Python proporciona funciones matemáticas incorporadas:
# Valor absoluto
absoluto = abs(-10)
print(absoluto) # Resultado: 10
# Redondeo
redondeado = round(3.7)
print(redondeado) # Resultado: 4
# Redondeo con precisión específica
redondeado_precision = round(3.14159, 2)
print(redondeado_precision) # Resultado: 3.14
# Máximo y mínimo
maximo = max(5, 10, 3, 8)
minimo = min(5, 10, 3, 8)
print(maximo, minimo) # Resultado: 10 3
El Módulo math
Para operaciones matemáticas más avanzadas, Python proporciona el módulo math
:
import math
# Constantes matemáticas
print(math.pi) # Resultado: 3.141592653589793
print(math.e) # Resultado: 2.718281828459045
# Funciones trigonométricas (en radianes)
print(math.sin(math.pi / 2)) # Resultado: 1.0
print(math.cos(math.pi)) # Resultado: -1.0
print(math.tan(math.pi / 4)) # Resultado: 0.9999999999999999 (aproximadamente 1)
# Funciones logarítmicas
print(math.log(10)) # Resultado: 2.302585092994046 (logaritmo natural)
print(math.log10(100)) # Resultado: 2.0 (logaritmo base 10)
# Raíz cuadrada
print(math.sqrt(16)) # Resultado: 4.0
# Redondeo hacia arriba y hacia abajo
print(math.ceil(4.2)) # Resultado: 5 (redondeo hacia arriba)
print(math.floor(4.8)) # Resultado: 4 (redondeo hacia abajo)
Ejemplos Prácticos
Calculadora de interés compuesto
# Calculadora de interés compuesto
principal = 1000 # Capital inicial
tasa = 0.05 # Tasa de interés anual (5%)
años = 5 # Período en años
n = 12 # Número de veces que se compone el interés por año
# Fórmula de interés compuesto: A = P(1 + r/n)^(nt)
monto_final = principal * (1 + tasa / n) ** (n * años)
print(f"Capital inicial: ${principal}")
print(f"Tasa de interés: {tasa * 100}%")
print(f"Período: {años} años")
print(f"Monto final: ${monto_final:.2f}")
Conversor de temperatura
# Conversor de temperatura (Celsius a Fahrenheit y viceversa)
def celsius_a_fahrenheit(celsius):
return (celsius * 9/5) + 32
def fahrenheit_a_celsius(fahrenheit):
return (fahrenheit - 32) * 5/9
# Ejemplos de uso
temp_c = 25
temp_f = celsius_a_fahrenheit(temp_c)
print(f"{temp_c}°C es igual a {temp_f:.1f}°F")
temp_f = 98.6
temp_c = fahrenheit_a_celsius(temp_f)
print(f"{temp_f}°F es igual a {temp_c:.1f}°C")
Calculadora de IMC (Índice de Masa Corporal)
# Calculadora de IMC
def calcular_imc(peso, altura):
# IMC = peso (kg) / altura² (m²)
return peso / (altura ** 2)
def interpretar_imc(imc):
if imc < 18.5:
return "Bajo peso"
elif imc < 25:
return "Peso normal"
elif imc < 30:
return "Sobrepeso"
else:
return "Obesidad"
# Ejemplo de uso
peso = 70 # kg
altura = 1.75 # m
imc = calcular_imc(peso, altura)
print(f"Peso: {peso} kg")
print(f"Altura: {altura} m")
print(f"IMC: {imc:.2f}")
print(f"Interpretación: {interpretar_imc(imc)}")
Consejos y Mejores Prácticas
- Cuidado con la división por cero: Python lanzará un
ZeroDivisionError
si intentas dividir por cero.
# Evita la división por cero
denominador = 0
try:
resultado = 10 / denominador
except ZeroDivisionError:
print("Error: No se puede dividir por cero")
- Precisión en números flotantes: Los números de punto flotante pueden tener problemas de precisión debido a cómo se representan en la memoria.
# Problemas de precisión con flotantes
print(0.1 + 0.2) # Resultado: 0.30000000000000004 (no exactamente 0.3)
# Para comparaciones, usa una tolerancia pequeña
from math import isclose
print(isclose(0.1 + 0.2, 0.3)) # Resultado: True
- Uso de funciones incorporadas: Aprovecha las funciones incorporadas de Python y el módulo
math
para operaciones complejas. - Legibilidad del código: Usa paréntesis para hacer que tus expresiones sean más claras, incluso cuando no sean estrictamente necesarios.
# Menos legible
resultado = a + b * c / d
# Más legible
resultado = a + ((b * c) / d)
Ejercicios Prácticos
- Escribe un programa que calcule el área y el perímetro de un círculo dado su radio.
- Crea una función que convierta una cantidad de días en años, semanas y días.
- Implementa una calculadora simple que realice las cuatro operaciones básicas (suma, resta, multiplicación y división).
- Escribe un programa que calcule el promedio de una lista de números.
- Crea una función que calcule la distancia entre dos puntos en un plano cartesiano.
En la próxima lección, exploraremos los operadores de comparación en Python y cómo utilizarlos para tomar decisiones en nuestros programas.