首页 > 技术文章 > 第一周作业-三级菜单

wenwei-blog 2017-05-13 19:12 原文

1. 运行程序输出第一级菜单

2. 选择一级菜单某项,输出二级菜单,同理输出三级菜单


3. 菜单数据保存在文件中


4. 让用户选择是否要退出


5. 有返回上一级菜单的功能


1
#coding:utf-8 2 #Author:Mr Zhi 3 file_o = open("menu",'r',encoding="utf-8") #打开三级菜单文件 4 menu= eval(file_o.read()) #把打开后的文件内容转换成字典(文件内容原本是字典) 5 def out(): #频繁使用的代码定义个函数 6 file_o.close() #关闭打开的文件 7 exit() #退出程序 8 for i in menu: #遍历菜单menu字典 9 print(i) #输出字典菜单
continue
10 while True: #开始while循环 11 choice = input("输入地区(按q退出,b返回上层):") #输入地区 12 if choice == "q": #判断输入chice值是否为q 13 out() #执行函数 14 if choice == "b": #判断输入chice值是否为b 15 print("已是第一层") 16 if choice not in menu or len(choice) == 0 and choice != "b": #判断输入choice值在菜单文件中或输入choice不等于b 17 print("你输入有误,请重新输入") 18 if choice in menu: #p判断输入choice是否在menu中 19 for i in menu[choice]: #遍历menu[choice] 20 print(i) 21 choice2 = input("输入省区(按q退出,b返回上层):") #输入结果 22 if choice2 not in menu[choice] and choice2 != "b":#判断输入choice2 不在字典中和不等于b 23 print("你输入有误,请重新输入") 24 if choice2 in menu[choice]: #判断 25 for i2 in menu[choice][choice2]: #遍历字典 26 print(i2) 27 print("最后一层菜单,下面没有了") 28 if choice2 == "q": #判断 29 out() 30 if choice2 == "b":#判断 31 continue #继续循环



 1 #三级菜单优化版
 2 #coding:utf-8
 3 #Author:Mr Zhi
 4 menu_f = open("menu",'r',encoding="utf-8")
 5 menu = eval(menu_f.read())
 6 l = []
 7 while True:
 8     for key in menu:  #遍历字典
 9         print(key)     #打印出键值,也就是父字典
10     choice = input("input your choice:").strip()  #
11     if choice == "q": #判断退出
12         menu = l[-1]  #赋值menu菜单等于列表的最后一个列表元素,把一个字典加到列表中
13         l.pop()  #清空列表
14     if len(choice) == 0 or choice not in menu: continue #判断不输入或者输入不在字典中时继续运行程序
15     l.append(menu)  #把字典加到列表
16     menu = menu[choice]  #重新复制选择的字典名称

 

 

推荐阅读