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.
- Leemos
aybcomofloat()y eloperadorcomo texto.input(...).strip()recorta los espacios sobrantes que el usuario pueda teclear antes o después, de modo que ” + ” se compare bien. if operador == "+": ... elif operador == "-": ...— comparamos la cadena con cada símbolo. En Python==compara el contenido de los strings directamente, sin funciones auxiliares.elif operador == "/":con unif b == 0:dentro — la división necesita un control extra. Anidamos un segundoifporque dividir entre cero es un error aparte que solo tiene sentido comprobar cuando la operación ya es una división.else: print(f"Error: operador '{operador}' no reconocido")— cualquier símbolo que no sea uno de los cuatro cae aquí. Tener unelsefinal 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 validaSolució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.