HDP115

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.

CE

Cristian Escalante

Última actualización: 18 de mayo de 2025

python
programación
matemáticas

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:

  1. Paréntesis ()
  2. Exponente **
  3. Multiplicación *, División /, División entera //, Módulo %
  4. 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

  1. 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")
  1. 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
  1. Uso de funciones incorporadas: Aprovecha las funciones incorporadas de Python y el módulo math para operaciones complejas.
  2. 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

  1. Escribe un programa que calcule el área y el perímetro de un círculo dado su radio.
  2. Crea una función que convierta una cantidad de días en años, semanas y días.
  3. Implementa una calculadora simple que realice las cuatro operaciones básicas (suma, resta, multiplicación y división).
  4. Escribe un programa que calcule el promedio de una lista de números.
  5. 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.

Variables y tipos de datos
Aprende los diferentes tipos de datos en Python y cómo traba...
Operadores de Comparación
Aprende a comparar valores en Python utilizando operadores d...
Referencias
Python.org. Python Mathematical Functions. https://docs.python.org/3/library/math.html
Python.org. Floating Point Arithmetic: Issues and Limitations. https://docs.python.org/3/tutorial/floatingpoint.html

Conceptos Básicos de HTML

Aprende los conceptos básicos de HTML

Conceptos Básicos de CSS

Aprende los conceptos básicos de CSS

Conceptos Básicos de JavaScript

Aprende los conceptos básicos de JavaScript

Conceptos Básicos SQL

Aprende los conceptos básicos de SQL

Conceptos Básicos de GIT

Aprende los conceptos básicos de GIT

Conceptos Básicos de UML

Aprende los conceptos básicos de UML

Refuerzo Academico de Herramientas de Productividad 2025