Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Desafío: Calculadora de gastos

Opción alternativa de algoritmo
Comienza con el total acumulado en 0.
Solicita el valor de un gasto al usuario.
Suma el valor ingresado al total acumulado.
Repite los pasos de solicitar y sumar hasta que el valor ingresado sea igual a 0.
Muestra el total acumulado final.
¿Cuál es la diferencia?
La opción del instructor usa un ciclo "mientras" (valida la condición antes de sumar). Esta opción alternativa usa un ciclo "repetir hasta que" (suma primero y valida la condición después). Ambas logran exactamente el mismo resultado con la misma eficiencia.

total = 0
gasto = float(input("Ingresa un gasto (o 0 para terminar): "))

while gasto != 0:
total += gasto
gasto = float(input("Ingresa el siguiente gasto (o 0 para terminar): "))

print(f"Total acumulado: {total}")

total = 0

while True:
gasto = float(input("Ingresa un gasto (o 0 para terminar): "))
if gasto == 0:
break # Detiene el ciclo si el usuario ingresa 0
total += gasto

print(f"Total acumulado: {total}")

1 respuesta

Hola, Laura. ¿Cómo va? Gracias por compartir tu solución con la comunidad Alura.

Tu comparación entre las dos formas de resolver la calculadora de gastos quedó muy clara. Es correcto decir que ambas estructuras permiten acumular valores hasta que el usuario ingrese 0, y también fue interesante que destacaras la diferencia entre validar la condición antes de continuar y usar una interrupción con break dentro del ciclo.

Solo vale cuidar la indentación en Python, porque las líneas que pertenecen al while y al if deben estar desplazadas hacia la derecha. En tu segundo ejemplo, la lógica con while True funciona muy bien para este tipo de caso, ya que permite pedir el gasto primero, verificar si es 0 y, si no lo es, sumarlo al total.

Una versión ajustada quedaría así:

total = 0

while True:
    gasto = float(input("Ingresa un gasto (o 0 para terminar): "))

    if gasto == 0:
        break

    total += gasto

print(f"Total acumulado: {total}")

Tu razonamiento está muy bien encaminado: identificaste dos caminos posibles para llegar al mismo resultado y explicaste la diferencia entre ellos. ¿En qué casos crees que while True con break puede hacer el código más fácil de leer?

Alura Cuenta con el apoyo de la comunidad Alura en tu jornada. Un abrazo y buenos estudios.