es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Creando un menú simple dentro de un bucle para llamar a funciones, atascado en por qué no funciona.

Para un proyecto escolar, mi compañero y yo hicimos un código. Probé cada función en un archivo de prueba separado para ver si funcionaba todo bien, pero el menú simplemente no funciona como se pretende. Mi cerebro no parece poder descubrir dónde está el error, agradecería una segunda opinión en esto.. ¡muchas gracias! Aquí está mi código:

def mainmenu():
    print("¡Hola! ¡Bienvenido a la compañía de Proyecto Sprint! Por favor, elija del 1 al 5: ")
    print("1. Programa IPO simple")
    print("2. Ejemplo de IFs y loops")
    print("3. Cadenas de caracteres y fechas")
    print("4. Archivos de datos y valores predeterminados")
    print("5. Salir")

while True:
    choice = input("Ingrese opción (1-5): ")
    if choice == 1:
        ipo()
    elif choice == 2:
        ifloop()
    elif choice == 3:
        stringsdates()
    elif choice == 4:
        datafiles()
    else:
        break

mainmenu()

Cada vez que lo ejecuto, simplemente termina automáticamente. Incluso probé poniendo una sección de impresión debajo del else, pero simplemente salta directamente a terminar el código. Muchas gracias por considerar mi pregunta.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema con su menú se debe a que la función de entrada devuelve una cadena, mientras que sus condiciones están comparando la entrada con enteros. Para solucionar esto, debe convertir la entrada a un entero utilizando la función int():

    def menuprincipal():
        print("¡Hola! ¡Bienvenido a la compañía The Sprint Project! Por favor elija del 1 al 5: ")
        print("1. Programa IPO simple")
        print("2. Ejemplo de IFs y bucles")
        print("3. Cadenas y fechas")
        print("4. Archivos de datos y valores predeterminados")
        print("5. Salir")
    
    
    while True:
        eleccion = int(input("Ingrese su elección (1-5): "))
        if eleccion == 1:
            ipo()
        elif eleccion == 2:
            ifloop()
        elif eleccion == 3:
            stringsdates()
        elif eleccion == 4:
            datafiles()
        else:
            break
    
    menuprincipal()
    

    Esto debería permitir que el menú funcione como se pretende.

Comments are closed.