Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
[Consulta] Inconveniente con while
#1
Hola, vengo con otro planteo tonto. Tengo el siguiente código:
Código:
def adicion():
    on_off = int(input("Inicio = 1 / Fin = 0: "))
    while on_off == 1:
        lista_suma = []
        suma = 0
        limite = int(input("Ingrese el valor límite de la lista: "))
        for x in range(1, limite + 1):
            numero = float(input("Ingrese valor a sumar: "))
            lista_suma.append(numero)
            suma = suma + numero
        print(f"Elementos de la lista: {lista_suma}")
        print(f"Resultado de la suma: {suma}")
        on_off = int(input("Inicio = 1 / Fin = 0: "))

        while (on_off != 0) and (on_off != 1):
            print("Valor incorrecto. Intente nuevamente")
            on_off = int(input("Inicio = 1 / Fin = 0: "))
El inconveniente que tengo es cuando lo ejecuto por primera vez:
========== MENÚ PRINCIPAL ==========

Inicio = 1 / Fin = 0:


Si "erróneamente" el usuario ingresa otro número, por ejemplo 2 pasa lo siguiente:
========== MENÚ PRINCIPAL ==========

Inicio = 1 / Fin = 0: 2

Process finished with exit code 0


Lo que necesito es que me vuelva a preguntar reiteradas veces hasta que se ingrese 1 o finalice cuando se ingrese 0. Muchas gracias
Responder
#2
Hola, lo podrías hacer así:

  1. def adicion():
  2. while True:
  3. on_off = input("Inicio = 1 / Fin = 0: ")
  4. if on_off == "1":
  5. lista_suma = []
  6. suma = 0
  7. limite = int(input("Ingrese el valor límite de la lista: "))
  8. for x in range(1, limite + 1):
  9. numero = float(input("Ingrese valor a sumar: "))
  10. lista_suma.append(numero)
  11. suma = suma + numero
  12. print(f"Elementos de la lista: {lista_suma}")
  13. print(f"Resultado de la suma: {suma}")
  14. break
  15. elif on_off == "0":
  16. break
  17. print("Valor incorrecto. Intente nuevamente")


Saqué el int() porque dado que no necesitás hacer operaciones aritméticas con lo que ingresa el usuario, es más fácil trabajar con la cadena directamente; de lo contrario deberías contemplar también que el usuario ingrese algo que no se pueda convertir a un número, lo cual arroja una excepción.

Saludos
Responder
#3
Hola, ayer en mis intentos hice algo muy similar a esto pero en feo :S.
Lo del int se me pasó, ya lo saco.
Muchas gracias
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)