Как зациклить меню, имеющее подменю в python?

Я пытаюсь создать Главное меню с подменю. Я хочу сделать так, чтобы независимо от того, какую последовательность пользователь выбирает из главного меню в подменю, он в конечном итоге будет направлен обратно в Главное Вот тут-то я и застрял. Прямо сейчас пользователь может пройти через последовательность меню только один раз. Как сделать это повторяющимся циклом?

choice = None
sub_choice = None
while choice != "0":    
    print("""
        main menu
        main 0
        main 1
        main 2
          """
          )
    choice = input("\nChoice: ")
    print()
    if choice == "0":
        print("Goodbye!")
    elif choice == "1":
        print("sub-menu:")
        while sub_choice != "0" :
            print("""
            sub-menu
            sub 0
            sub 1
          """
          )
            sub_choice = input("\nSub-choice : ")
            if sub_choice == "0":
                print("Exit sub-menu!")
            elif sub_choice == "1":
                print("What?")
    elif choice == "2":
        print("hi")
    else:
        print("Sorry, but", choice, "isn't a valid choice.")
input("\n\nPress enter to exit.")

Ответы (1 шт):

Автор решения: Wu Hectic

Как выяснилось, подменю должно содержать в цикле while True, а не While sub_choice != "0" и оператор break для прерывания цикла. Решение :

choice = None
sub_choice = None
while choice != "0":    
    print("""
        main menu
        main 0
        main 1
        main 2
          """
          )
    choice = input("\nChoice: ")
    print()
    if choice == "0":
        print("Goodbye!")
    elif choice == "1":
        print("sub-menu:")
        while True:
            print("""
            sub-menu
            sub 0
            sub 1
          """
          )
            sub_choice = input("\nSub-choice : ")
            if sub_choice == "0":
                break
            if sub_choice == "1":
                print("What?")
    elif choice == "2":
        print("hi")
    else:
        print("Sorry, but", choice, "isn't a valid choice.")
input("\n\nPress enter to exit.")
→ Ссылка