Operadores en Python con práctica

Operadores en Python — práctica real con 3 programas en VS Code

Los operadores en Python práctica real es lo que toca ahora, en el artículo anterior vimos la teoría. Ahora toca escribir código real. En este artículo construimos tres programas desde cero en VS Code usando todos los operadores que aprendiste: un conversor de unidades, una calculadora de descuentos y una calculadora completa con menú. Cada programa va de más simple a más completo — igual que en los ejercicios de clase.

Antes de empezar asegúrate de tener VS Code configurado. Crea una carpeta nueva llamada practica_operadores y dentro crea un archivo para cada programa.

Practicar los operadores en Python con práctica real es la mejor forma de afianzarlos, recomiendo además el uso de pythontutor.com para visualizar paso a paso lo que está ocurriendo.

Operadores en Python práctica — Programa 1: Conversor de unidades

Crea el archivo conversor.py. Este programa convierte entre las unidades más usadas en el día a día:

# Conversor de unidades
print("=== CONVERSOR DE UNIDADES ===\n")

# Entrada
valor = float(input("Introduce el valor a convertir: "))

print("\n--- Distancia ---")
km_a_millas = round(valor * 0.621371, 4)
millas_a_km  = round(valor * 1.60934, 4)
print(f"{valor} km → {km_a_millas} millas")
print(f"{valor} millas → {millas_a_km} km")

print("\n--- Peso ---")
kg_a_libras = round(valor * 2.20462, 4)
libras_a_kg = round(valor * 0.453592, 4)
print(f"{valor} kg → {kg_a_libras} libras")
print(f"{valor} libras → {libras_a_kg} kg")

print("\n--- Temperatura ---")
celsius_a_fahrenheit = round((valor * 9/5) + 32, 2)
fahrenheit_a_celsius = round((valor - 32) * 5/9, 2)
print(f"{valor} °C → {celsius_a_fahrenheit} °F")
print(f"{valor} °F → {fahrenheit_a_celsius} °C")
```

Resultado con valor 100:
```
=== CONVERSOR DE UNIDADES ===

--- Distancia ---
100 km → 62.1371 millas
100 millas → 160.934 km

--- Peso ---
100 kg → 220.462 libras
100 libras → 45.3592 kg

--- Temperatura ---
100 °C → 212.0 °F
100 °F → 37.78 °C

Fíjate en lo que usamos aquí, * para multiplicar las conversiones, / para la temperatura, + y - también en temperatura, round() para controlar decimales, y f-strings para mostrar todo limpio. Todos los operadores aritméticos en acción.

Operadores en Python práctica — Programa 2: Calculadora de descuentos

Crea el archivo descuentos.py. Muy útil para entender cómo funciona el operador % en contexto real — aquí sí es porcentaje matemático, no módulo:

# Calculadora de descuentos y precios
print("=== CALCULADORA DE DESCUENTOS ===\n")

producto = input("Nombre del producto: ")
precio_original = float(input("Precio original (€): "))
descuento_pct = float(input("Descuento (%): "))

# Cálculos
descuento_euros = round(precio_original * descuento_pct / 100, 2)
precio_final = round(precio_original - descuento_euros, 2)
iva = round(precio_final * 0.21, 2)
precio_con_iva = round(precio_final + iva, 2)
ahorro_real = round(precio_original - precio_final, 2)

# Resultado detallado
print(f"\n--- Desglose de {producto} ---")
print(f"Precio original:     {precio_original} €")
print(f"Descuento ({int(descuento_pct)}%):      -{descuento_euros} €")
print(f"Precio con descuento: {precio_final} €")
print(f"IVA (21%):           +{iva} €")
print(f"Precio final con IVA: {precio_con_iva} €")
print(f"\nAhorro total:        {ahorro_real} €")
```

Resultado:
```
=== CALCULADORA DE DESCUENTOS ===

Nombre del producto: Portátil
Precio original (€): 899
Descuento (%): 15

--- Desglose de Portátil ---
Precio original:      899.0 €
Descuento (15%):      -134.85 €
Precio con descuento: 764.15 €
IVA (21%):            +160.47 €
Precio final con IVA: 924.62 €

Ahorro total:         134.85 €

Aquí usamos * y / para calcular porcentajes, - y + para aplicarlos, y round() en cada paso para evitar errores de decimales acumulados. Fíjate que el IVA se aplica sobre el precio con descuento, no sobre el original, ese es el cálculo correcto.

Operadores en Python práctica — Programa 3: Calculadora completa con menú

Este es el más ambicioso. Crea el archivo calculadora.py. Usa el operador % como módulo para detectar divisiones exactas, y // para la división entera:

# Calculadora completa con menú
print("=== CALCULADORA PYTHON ===")
print("1. Suma")
print("2. Resta")
print("3. Multiplicación")
print("4. División")
print("5. División entera")
print("6. Módulo (resto)")
print("7. Potencia")

opcion = int(input("\nElige una opción (1-7): "))
a = float(input("Primer número: "))
b = float(input("Segundo número: "))

print("\n--- Resultado ---")

if opcion == 1:
    resultado = a + b
    print(f"{a} + {b} = {resultado}")

elif opcion == 2:
    resultado = a - b
    print(f"{a} - {b} = {resultado}")

elif opcion == 3:
    resultado = a * b
    print(f"{a} × {b} = {resultado}")

elif opcion == 4:
    if b != 0:
        resultado = round(a / b, 4)
        print(f"{a} / {b} = {resultado}")
    else:
        print("Error: no se puede dividir entre cero")

elif opcion == 5:
    if b != 0:
        resultado = int(a // b)
        resto = int(a % b)
        print(f"{int(a)} // {int(b)} = {resultado} (resto: {resto})")
    else:
        print("Error: no se puede dividir entre cero")

elif opcion == 6:
    if b != 0:
        resultado = int(a % b)
        print(f"{int(a)} % {int(b)} = {resultado}")
        if resultado == 0:
            print(f"→ {int(a)} es divisible por {int(b)}")
        else:
            print(f"→ {int(a)} NO es divisible por {int(b)}")
    else:
        print("Error: no se puede dividir entre cero")

elif opcion == 7:
    resultado = a ** b
    print(f"{a} ^ {b} = {resultado}")

else:
    print("Opción no válida")
```

Resultado con opción 5 (división entera):
```
=== CALCULADORA PYTHON ===
1. Suma
...
Elige una opción (1-7): 5
Primer número: 17
Segundo número: 5

--- Resultado ---
17 // 5 = 3 (resto: 2)

Este programa ya usa estructuras if/elif/else que veremos en profundidad en el Tema 3, pero el funcionamiento es intuitivo. Lo importante aquí es ver cómo cada operador produce un resultado diferente con los mismos números.

El truco del operador % que más usarás

De todos los operadores el que más confunde y más se usa en ejercicios de FP1 es %. Aquí tienes los tres casos más típicos:

# ¿Es par o impar?
numero = 7
print(numero % 2 == 0)    # → False (impar)
print(numero % 2 == 1)    # → True  (impar confirmado)

# ¿Es divisible por N?
print(15 % 3 == 0)        # → True  (15 es divisible por 3)
print(16 % 3 == 0)        # → False (16 no es divisible por 3)

# Extraer los dígitos de un número
numero = 1234
unidades  = numero % 10          # → 4
decenas   = (numero // 10) % 10  # → 3
centenas  = (numero // 100) % 10 # → 2
millares  = (numero // 1000)     # → 1

Ese último ejemplo, extraer dígitos con % y // combinados, no aparece con mucha frecuencia pero sigue siendo relevante.

Resumen y siguiente paso

En este artículo practicaste los operadores en Python con tres programas reales. Los conceptos clave fueron * y / para conversiones y porcentajes, // para división entera, % para restos y divisibilidad, y cómo combinar operadores con round() y f-strings para resultados limpios.

En el siguiente artículo de esta serie encontrarás ejercicios propuestos con solución para practicar por tu cuenta.

Publicaciones Similares

Un comentario

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *