编写程序实现中文级联菜单,建议可以使用pypinyin或其它扩展库。
# 一、定义菜单内容 map_list ={ 'C盘':{ "program":{ "Microsoft Office":["IntegratedOffice.exe","OfficeClickToRun.exe"], "Microsoft SDKs":["locales","resources"] }, "Windows Media Player":{ "Media Renderer":["avtransport.xml","connectionmanager_dmr.xml"], "Network Sharing":["ConnectionManager.xml","ContentDirectory.xml"] }, "Windows NT": { "Accessories": ["en-US", "zh-CN"], "TableTextService": ["TableTextServiceArray.txt", "TableTextServiceDaYi.txt"] } }, 'D盘': { "课程": { "高数": ["高数一", "高数二"], "c++": ["第一章概轮", "第二章"] }, "活动": { "青马培训": ["线上笔记", "课后练习"], "软件杯": ["题目选择", "项目"] }, "作业":{ "高数": ["高数一", "高数二"], "操作系统": ["课后作业", "实验"] }, }, 'E盘': { "QQ": { "All Users": ["1161851172", "Registry2.0.db"], "MobileFile": ["Image", "mpFile"] }, "WeChat": { "Tencent": ["[3.6.0.18]", "appletPath.txt"], "WeChat Files": ["All Users", "Applet"] }, "Hadoop2.7.1": { "bin": ["container-executor", "hadoop"], "data": ["datanode", "namenode"] }, }, } while True: for menu_list in map_list: #定义一级联菜单,将已经完成级联的菜单传给新定义的数值menu_list print(menu_list) #打印一级菜单 # -------------------------------------------------------------------------------打印第一层输出,打印磁盘 chose_list = input("选择进入1>>:") #将用户输入定义为chose_list if chose_list in map_list: #判断用户输入,如果用户输入的数据在定义的字典里面,则为真 while True: for menu_list1 in map_list[chose_list]: #定义二级菜单menu_list1,如果用户输入的这个菜单在一级菜单里面,则进行打印 print("\t",menu_list1) # -------------------------------------------------------------------------------打印第二层输出,打印文件夹 chose_list1 = input("选择进入2>>:") #将用户输入定义为chose_list1 if chose_list1 in map_list[chose_list]: #判断用户输入,如果用户输入的数据在定义的字典里面,则为真 while True: for menu_list2 in map_list[chose_list][chose_list1]: #定义三级菜单menu_list2,如果用户输入的这个菜单在二级菜单里面,则进行打印 print("\t\t",menu_list2) # -------------------------------------------------------------------------------打印第三层输出,打印子文件夹 chose_list2 = input("选择进入3>>:") #将用户输入定义为chose_list2 if chose_list2 in map_list[chose_list][chose_list1]: #判断用户输入,如果用户输入的数据在定义的字典里面,则为真 for menu_list3 in map_list[chose_list][chose_list1][chose_list2]: #定义三级菜单menu_list3,如果用户输入的这个菜单在一级、二级、三级菜单里面,则进行打印 print("\t\t\t",menu_list3) # -------------------------------------------------------------------------------打印第三层区县里面所包含的具体文件夹或者文件 chose_list3 = input("最后一层,按b进行返回。>>:") #判断用户是否需要返回,返回上一层级 if chose_list3 == 'b': break # -------------------------------------------------------------------------------添加判断,来进行确认终端用户是否想要返回上级菜单。也就是返回上一级文件夹 if chose_list2 == 'b': #判断用户是否返回 break # -------------------------------------------------------------------------------添加判断,来进行确认终端用户是否想要返回上级菜单。也就是返回上一级文件夹 if chose_list1 == 'b': #判断用户是否返回 break