编写三级菜单程序的基本思路如下:
定义菜单数据结构
使用嵌套字典或列表来表示菜单的层级关系。每个菜单项可以包含子菜单项或指向其他功能的操作。
构建菜单层级关系
根据需求,将菜单项按照层级关系进行构建。可以使用字典嵌套的方式来表示不同层级的菜单项。
实现菜单显示和选择功能
通过循环和条件判断来实现菜单的显示和选择功能。首先显示一级菜单,用户选择一级菜单后,显示对应的二级菜单,再根据用户的选择显示对应的三级菜单。
处理用户输入
在菜单的选择过程中,需要获取用户的输入,并进行相应的处理。可以使用`input()`函数来获取用户输入,并使用条件判断来判断用户选择的菜单项。
实现返回功能
在菜单选择的过程中,可以添加返回功能,让用户可以返回上一级菜单或返回主菜单。可以使用栈来保存菜单的层级关系,当用户选择返回时,从栈中弹出上一级菜单。
实现退出功能
添加退出功能,当用户选择退出时,结束程序运行。
异常处理
在编程过程中,要考虑用户输入错误的情况,可以添加异常处理机制,对用户输入进行验证和处理。
```python
def main_menu():
menu_data = {
1: {
11: {
111: "选项1-1-1",
112: "选项1-1-2",
},
12: {
121: "选项1-2-1",
122: "选项1-2-2",
},
},
2: {
21: {
211: "选项2-1-1",
212: "选项2-1-2",
},
22: {
221: "选项2-2-1",
222: "选项2-2-2",
},
},
3: {
31: {
311: "选项3-1-1",
312: "选项3-1-2",
},
32: {
321: "选项3-2-1",
322: "选项3-2-2",
},
},
}
level1 = 1
level2 = 1
level3 = 1
while level1 == 1:
print(f"一级菜单: {list(menu_data.keys())}")
choose1 = input("请输入一级菜单选项: ")
if choose1 in menu_data[level1]:
level2 = 1
level3 = 1
print(f"二级菜单: {list(menu_data[level1][choose1].keys())}")
choose2 = input("请输入二级菜单选项: ")
if choose2 in menu_data[level1][choose1]:
level3 = 1
print(f"三级菜单: {list(menu_data[level1][choose1][choose2].keys())}")
choose3 = input("请输入三级菜单选项: ")
if choose3 in menu_data[level1][choose1][choose2]:
print(f"您选择了: {menu_data[level1][choose1][choose2][choose3]}")
else:
print("无效选项,请重新输入。")
else:
print("无效选项,请重新输入。")
else:
print("无效选项,请重新输入。")
if choose1 == "up":
level2 -= 1
level3 = 1
elif choose1 == "back":
level2 += 1
level3 = 1
elif choose1 == "quit":
print("退出程序。")
break
else:
print("无效选项,请重新输入。")
if __name__ == "__main__":
main_menu()
```