软件工程日报(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)
所学知识:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律