软件工程日报(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 @   夏季彼岸德  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示