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í:

Código:
def adicion():
    while True:
        on_off = input("Inicio = 1 / Fin = 0: ")
        if 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}")
            break
        elif on_off == "0":
            break
        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
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
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)