3.26

时长:五十分钟

代码量:

8-4 【Python0036】中文级联菜单
分数 10
作者 doublebest
单位 石家庄铁道大学

编写程序实现中文级联菜单,建议可以使用pypinyin或其它扩展库。

代码:

def display_menu(menu, level=0):
"""递归显示菜单"""

for index, (key, value) in enumerate(menu.items(), start=1):

print(" " * level + f"{index}. {key}")

if isinstance(value, dict): # 如果值是字典,说明还有下一级菜单

display_menu(value, level + 1)


def get_choice(prompt="请选择: "):
"""获取用户选择"""

while True:

try:

choice = int(input(prompt))

return choice

except ValueError:

print("输入无效,请输入数字。")


def navigate_menu(menu):
"""导航菜单"""

while True:

display_menu(menu)

choice = get_choice()

current_level = menu

path = [] # 记录选择的路径

# 根据用户选择遍历菜单

for level in range(len(str(choice))):

digit = int(str(choice)[level]) - 1

if digit < len(current_level):

path.append(list(current_level.keys())[digit])

current_level = list(current_level.values())[digit]

else:

print("无效的选择。")

break

# 检查是否到达叶子节点

if not isinstance(current_level, dict):
print("你选择了:", " -> ".join(path))

print("操作完成或显示信息。") # 这里可以添加具体操作

break


# 示例菜单结构

menu = {

"一级菜单1": {

"二级菜单1-1": "这是二级菜单1-1的操作或信息",

"二级菜单1-2": {

"三级菜单1-2-1": "这是三级菜单1-2-1的操作或信息"

}

},

"一级菜单2": {

"二级菜单2-1": "这是二级菜单2-1的操作或信息"

}

}

navigate_menu(menu)
posted @ 2024-06-19 17:38  孙锺鸣  阅读(1)  评论(0编辑  收藏  举报