Skip to content

Commit c82bde3

Browse files
committed
feat: completar reto1 en 07_mini_proyectos
1 parent aaf3914 commit c82bde3

File tree

1 file changed

+95
-1
lines changed

1 file changed

+95
-1
lines changed

07_mini_proyectos/retos/reto1.py

Lines changed: 95 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,98 @@
11
# Reto 1: Procesador interactivo de comandos
22
# Enunciado: Crea un programa que procese comandos hasta que el usuario escriba "salir".
3+
#
4+
# **Requisitos**:
5+
# - Usa operador morsa en el bucle `while`
6+
# - Comandos: `sumar x y`, `restar x y`, `multiplicar x y`, `dividir x y`
7+
# - Valida que los números sean correctos
8+
# - Muestra error si el comando no es válido
9+
#
10+
# **Ejemplo de uso**:
11+
# ```
12+
# Comando: sumar 5 3
13+
# ✅ 5 + 3 = 8
14+
#
15+
# Comando: dividir 10 0
16+
# ❌ No se puede dividir por cero
17+
#
18+
# Comando: hola
19+
# ❌ Comando no válido
20+
#
21+
# Comando: salir
22+
# ¡Hasta pronto!
23+
# ```
324

4-
25+
# TODO 1: Función que imprime las instrucciones del reto 1
26+
def mostrar_instrucciones():
27+
print("\n--- Instrucciones de uso ---")
28+
print("Escribe uno de estos comandos para interactuar con el programa:")
29+
print("1. sumar x y --> Suma los valores x y")
30+
print("2. restar x y --> Resta los valores x y")
31+
print("3. multiplicar x y --> Multiplica los valores x y")
32+
print("4. dividir x y --> Divide los valores x y (cuidado con agregar '0' en y)")
33+
print("5. salir --> Salimos del programa")
34+
print("'x' es el primer número a introducir en el programa; 'y' es el segundo número a introducir")
35+
print("EJEMPLO: ")
36+
print("Comando: sumar 5 3")
37+
print("✅ 5 + 3 = 8")
38+
print("\nAhora bien, ¿empezamos?")
39+
40+
# TODO 2: Función de la lógica del programa reto1
41+
def reto1():
42+
# Llamamos la función de las intrucciones
43+
mostrar_instrucciones()
44+
45+
# Bucle principal while: ejecuta comandos hasta escribir la palabra 'salir'
46+
# El operador := (operador morsa) asigna valor a 'comando' y lo evalúa en la misma línea
47+
while (comando := input("\nComando: ").strip().lower()) != "salir":
48+
49+
# Separar el comando en partes (en este caso 3)
50+
partes = comando.split()
51+
52+
# Comprobar que 'partes' tenga dividida 3 partes (operador, x, y)
53+
if len(partes) != 3:
54+
print("❌ Comando no válido.")
55+
continue # Volver al inicio del bucle
56+
57+
# Desempaquetamos las partes del comando
58+
operador, str_x, str_y = partes
59+
60+
# Intentar que x y sean números flotantes
61+
try:
62+
x, y = float(str_x), float(str_y)
63+
except ValueError:
64+
print("❌ Números no válidos.")
65+
continue
66+
67+
# Ejecutar la operacion solicitada
68+
if operador == "sumar":
69+
print(f"✅ {x} + {y} = {x + y}")
70+
continue
71+
elif operador == "restar":
72+
print(f"✅ {x} + {y} = {x - y}")
73+
continue
74+
elif operador == "multiplicar":
75+
print(f"✅ {x} + {y} = {x * y}")
76+
continue
77+
elif operador == "dividir":
78+
if y != 0:
79+
print(f"✅ {x} + {y} = {x / y}")
80+
continue
81+
else:
82+
print("❌ No se puede dividir por 0.")
83+
else:
84+
print("❌ Comando no válido.")
85+
86+
# Una vez introducido la palabra 'salir', finaliza el programa
87+
print("Hasta pronto 👋")
88+
89+
# TODO 3: Crear función principal
90+
def main():
91+
# Imprimir título del reto 1
92+
print("--- 🛠️ Procesador interactivo de comandos 🛠️ ---")
93+
# Llamar función reto1
94+
reto1()
95+
96+
# TODO: Punto de entrada del programa
97+
if __name__ == "__main__":
98+
main()

0 commit comments

Comments
 (0)