可以尝试使用递归函数来解决这个问题。假设有以下菜单:
def main_menu():
print("1. Option A")
print("2. Option B")
print("3. Exit")
choice = input("Choose an option: ")
if choice == "1":
submenu_A()
elif choice == "2":
submenu_B()
elif choice == "3":
exit()
def submenu_A():
print("Option A Menu")
print("1. Sub-option A1")
print("2. Sub-option A2")
print("3. Back")
choice = input("Choose an option: ")
if choice == "1":
print("You chose Sub-option A1")
elif choice == "2":
print("You chose Sub-option A2")
elif choice == "3":
main_menu()
def submenu_B():
print("Option B Menu")
print("1. Sub-option B1")
print("2. Sub-option B2")
print("3. Back")
choice = input("Choose an option: ")
if choice == "1":
print("You chose Sub-option B1")
elif choice == "2":
print("You chose Sub-option B2")
elif choice == "3":
main_menu()
main_menu()
在这个示例中,如果在submenu_A()或submenu_B()内部选择了“3. Back”,那么会回到主菜单。但如果又在主菜单上选择了submenu_A()或submenu_B(),那么会在该子菜单内循环,而无法回到上一级菜单。
解决方法是使用递归,即在submenu_A()或submenu_B()内部调用main_menu(),而不是直接返回到主菜单。
示例代码:
def main_menu():
print("1. Option A")
print("2. Option B")
print("3. Exit")
choice = input("Choose an option: ")
if choice == "1":
submenu_A()
elif choice
下一篇:被卡在Java算法上