python实现通用多级菜单功能(控制台菜单)。要求:首先读取数据表菜单并显示,等待用户选择,之后接受用户选择并执行相应操作,最后选择是否退出。
时间: 2023-12-14 08:40:19 浏览: 298
下面是一个简单的Python程序实现通用多级菜单功能,可以根据你的具体需求进行调整。
假设我们的菜单数据表是一个嵌套字典,其中每个键都是菜单项的名称,对应的值可以是另一个嵌套字典,表示下一级菜单,或者是一个字符串,表示该菜单项的操作。
```python
menu = {
"菜单1": {
"子菜单1": {
"子子菜单1": "执行操作1",
"子子菜单2": "执行操作2"
},
"子菜单2": "执行操作3"
},
"菜单2": {
"子菜单3": "执行操作4",
"子菜单4": "执行操作5"
},
"退出": "exit"
}
```
接下来,我们使用一个循环来显示菜单并等待用户选择,直到用户选择退出。每次循环中,我们根据菜单数据表生成当前级别的菜单,并提示用户输入选择。如果用户输入的是一个子菜单的名称,则进入下一级菜单;如果用户输入的是一个操作,则执行该操作;如果用户输入的是退出命令,则跳出循环。
```python
def display_menu(menu, level=0):
indent = " " * level
for key, value in menu.items():
if isinstance(value, dict):
print(f"{indent}{key}:")
display_menu(value, level + 1)
else:
print(f"{indent}{key}")
while True:
display_menu(menu)
choice = input("请选择菜单:")
if choice == "exit":
break
elif choice in menu:
selection = menu[choice]
if isinstance(selection, dict):
menu = selection
else:
print(f"执行操作:{selection}")
else:
print("无效的选择!")
```
上面的程序中,`display_menu` 函数用于递归地显示菜单。`level` 参数表示当前菜单的级别,用于控制缩进。在每个菜单项前面,我们都打印一些空格,以表示层次结构。
在主循环中,我们不断地显示菜单,等待用户输入选择。如果用户输入的是退出命令,则跳出循环;否则,我们检查用户选择是否在当前菜单中。如果是一个子菜单的名称,则进入下一级菜单;如果是一个操作,则执行该操作;如果无效,则提示用户重新输入。
阅读全文