#Author:hejianping #2017-04-21 import menu import sys first_menu_index = [] second_menu_index = [] third_menu_index = []
# 创建一级菜单索引列表 #使用enumerate函数遍历menu_dict中的一级目录元素并显示数据索引号,即创建一级餐单索引: first_menu_index = [(index,key) for index,key in enumerate(menu.menu_dict)]
# 在first_menu_index列表末尾插入(索引号,退出餐单),因为从0算起所以新加的索引号等于len(first_menu_index): first_menu_index.append((int(len(first_menu_index)),'退出'))
while True: print('--------------------------------') print('欢迎查看本店的餐单目录:') print('--------------------------------') for first in first_menu_index: # 打印出一级餐单目录 for n in first: print(n,end="") print("") # 打印空行
get_first_menu_num = input("请选择一级餐单对应的索引号:") if not get_first_menu_num.isdigit(): #判断输入格式是否无效 print("请输入餐单前的数字索引号查看餐单或者退出!") continue elif int(get_first_menu_num) >= len(first_menu_index): #判断输入索引是否存在 print("您输入的索引号数字太大,请重新输入!") continue elif int(get_first_menu_num) == len(first_menu_index) - 1: #len(first_menu)长度为4,及输入3就退出并显示退出信息: print("欢迎下次光临,再见!") break
else: choose_first_menu_name = first_menu_index[int(get_first_menu_num)][1] #获取已经选择的一级餐单名字 #依据一级餐单名确立其下二级餐单名字及对应的索引号: second_menu_index = [(index,key) for index,key in enumerate(menu.menu_dict[choose_first_menu_name])] second_menu_index.append((len(second_menu_index),'返回')) # 在列表增加返回上一级餐单的选项 second_menu_index.append((len(second_menu_index), '退出')) # 在列表增加退出餐单的选项 while True: print('--------------------------------') print('欢迎查看二级餐单目录:') print('--------------------------------') for second in second_menu_index: # 打印出二级餐单目录 for n in second: print(n, end="") print("")
get_second_menu_num = input("请选择二级餐单对应的索引号:") if not get_second_menu_num.isdigit(): print("请输入餐单前的数字索引号查看餐单或者退出!") continue elif int(get_second_menu_num) >= len(second_menu_index): print("您输入的索引号数字太大,请重新输入!") continue elif int(get_second_menu_num) == len(second_menu_index) - 2: # 返回上级餐单目录: print("返回到上一级的餐单目录!") break elif int(get_second_menu_num) == len(second_menu_index) - 1: # 退出餐单目录: print("欢迎下次光临,再见!") sys.exit()
else: choose_second_menu_name = second_menu_index[int(get_second_menu_num)][1] #获取已经选择的二级餐单名字 # 依据二级餐单名确立其下三级餐单名字及对应的索引号: third_menu_index = [(index, key) for index, key in enumerate(menu.menu_dict[choose_first_menu_name][choose_second_menu_name])] third_menu_index.append((len(third_menu_index),"返回上级目录")) third_menu_index.append((len(third_menu_index), "退出餐单"))
while True: print('--------------------------------') print('欢迎查看三级餐单目录:') print('--------------------------------') for third in third_menu_index: # 打印出一级菜单 # print(first) for n in third: print(n, end="") print("")
get_third_menu_num = input("请选择返回或退出:") if not get_third_menu_num.isdigit(): print("请输入餐单前的数字索引号查看餐单或者退出!") continue elif int(get_third_menu_num) >= len(third_menu_index): print("您输入的索引号数字太大,请重新输入!") continue elif int(get_third_menu_num) == len(third_menu_index) - 2: # 返回上级餐单目录: print("返回到上一级的餐单目录!") break elif int(get_third_menu_num) == len(third_menu_index) - 1: # 退出餐单目录: print("欢迎下次光临,再见!") sys.exit()
其中import menu为menu.py这个菜单目录信息文件,代码为:
#Author:hejianping
#2017-04-21 menu_dict = {'中餐': {'蒸饭': ['冬菇滑鸡', '葱香排骨','萝卜牛腩'], '家常小炒': ['凉瓜牛肉', '番茄炒蛋','青椒炒肉'], '炖汤': ['瘦肉虫草花', '花旗参乌鸡','椰子炖老鸡']}, '西餐': {'西式饭': ['印尼炒饭', '牛柳炒蛋拌饭','猪仔扒番茄蛋饭'], '西式扒': ['经典牛扒', '黑椒猪仔扒','欧陆什扒'], '西式粉': ['墨西哥肉酱意粉', '西西里猪扒意粉','西西里鸡扒意粉']}, '饮品': {'饮料': ['加多宝', '果粒橙','可口可乐'], '奶茶': ['鸳鸯奶茶', '神仙奶茶','珍珠奶茶'], '糖水': ['绿豆沙', '莲子百合','红豆西米露']}}
其中三级菜单流程图为:
|