Ejercicio 06 — Calculadora simple

Dificultad: amarillo · Módulo 02 (Condicionales)

Enunciado

Calculadora simple: dos números y un operador (+,-,*,/); maneja división por cero

Cómo se resuelve

Una calculadora que elige operación según un símbolo es el ejemplo natural para ramificar por igualdad de cadenas y para anidar un caso especial dentro de una rama.

  1. Leemos a y b como float() y el operador como texto. input(...).strip() recorta los espacios sobrantes que el usuario pueda teclear antes o después, de modo que ” + ” se compare bien.
  2. if operador == "+": ... elif operador == "-": ... — comparamos la cadena con cada símbolo. En Python == compara el contenido de los strings directamente, sin funciones auxiliares.
  3. elif operador == "/": con un if b == 0: dentro — la división necesita un control extra. Anidamos un segundo if porque dividir entre cero es un error aparte que solo tiene sentido comprobar cuando la operación ya es una división.
  4. else: print(f"Error: operador '{operador}' no reconocido") — cualquier símbolo que no sea uno de los cuatro cae aquí. Tener un else final evita que el programa quede en silencio ante una entrada rara.

Trampa habitual: comparar el operador con is en vez de ==. is pregunta si son el mismo objeto en memoria, no si tienen el mismo texto, y puede fallar de forma impredecible. Para comparar el valor de dos cadenas siempre ==. En C, además, no podrías hacer esto con == sobre cadenas: allí compararías char sueltos o usarías strcmp.

Para practicar — cópialo y complétalo

Pega este esqueleto y completa los TODO. Es la mejor forma de aprender: inténtalo antes de mirar la solución.

# Curso de Python — Modulo 02: Condicionales
# Ejercicio 06 — PRACTICA (rellena los TODO)
# Enunciado: Calculadora simple: dos números y un operador (+,-,*,/); maneja división por cero
# Dificultad: amarillo
# Ejecutar: python3 ej06_practica.py
 
# TODO: lee el primer numero como flotante
a = None
 
# TODO: lee el operador como cadena (usa .strip() para quitar espacios accidentales)
operador = None
 
# TODO: lee el segundo numero como flotante
b = None
 
# TODO: usa if / elif para cada operador (+, -, *, /)
#       Para la division, anida un if extra que compruebe si b == 0
#       Si el operador no es ninguno de los cuatro, imprime un mensaje de error
 
# TODO: imprime "Resultado: <valor>" en cada rama valida

Solución — cópiala y ejecútala

# Curso de Python — Modulo 02: Condicionales
# Ejercicio 06 — MODELO (resuelto)
# Enunciado: Calculadora simple: dos números y un operador (+,-,*,/); maneja división por cero
# Dificultad: amarillo
# Ejecutar: python3 ej06_modelo.py
 
a = float(input("Primer numero: "))
operador = input("Operador (+, -, *, /): ").strip()
b = float(input("Segundo numero: "))
 
if operador == "+":
    resultado = a + b
    print(f"Resultado: {resultado}")
elif operador == "-":
    resultado = a - b
    print(f"Resultado: {resultado}")
elif operador == "*":
    resultado = a * b
    print(f"Resultado: {resultado}")
elif operador == "/":
    if b == 0:
        print("Error: division por cero")
    else:
        resultado = a / b
        print(f"Resultado: {resultado}")
else:
    print(f"Error: operador '{operador}' no reconocido")

Cómo usarlo

Pega el código en un fichero y ejecútalo con tu toolchain habitual (o el botón de Ejecutar de tu editor). Antes de mirar la solución, intenta completar tú el esqueleto: es la mejor forma de aprender.

Conexiones