您的位置:首页 > 编程语言 > Python开发

python 第一周作业:三级菜单

2017-05-21 23:18 344 查看
测试环境win7,python3.6,pycharm社区版

作业需求:
1. 运行程序输出第一级菜单
2. 选择一级菜单某项,输出二级菜单,同理输出三级菜单
3. 菜单数据保存在文件中
4. 让用户选择是否要退出
5. 有返回上一级菜单的功能
什么也别说了,第一次参加老男孩的Python教学视频,第一次作业,简直就是蒙圈。直接上代码,不要死的太难看。

先来个自己写的代码,重复代码太多:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# jzy
menu ={
"昌平区": {"天通苑":
{"家乐福": {}, "物美": {}, "华联": {}},
"小汤山":
{"龙脉温泉": {}, "健身房": {}}},

"顺义区": {"后沙峪":
{"现代汽车": {}, "汇源果汁": {}, "牛栏山二锅头": {}},
"天竺":
{"飞机场": {}, "燕京啤酒": {}}},

"海淀区": {"雍和宫":
{'航星科技园': {}, '天坛庙会': {}, '肯德基': {}},
"厢红旗":
{'香山': {}, '林业科学研究院': {}, '军事科学研究院': {}}}
}

while True:
for i in menu:
print(i)
num1 = input("请选择:")

if num1 in menu.keys():
while True:
for i in menu[num1]:
print(i)
num2 = input("请选择第二层:")
if num2 in menu[num1]:
while True:
for i in menu[num1][num2]:
print(i)
num3 = input("请选择第三层:")
if num3 in menu[num1][num2]:
print("this is you choice")
exit()
elif num3 == 'b':
break
elif num3 == 'q':
exit()
else:
continue
elif num2 == 'b':
break
elif num2 == 'q':
exit()
else:
continue
elif num1 == 'q':
exit()
else:
continue

看了老师的讲解视频,照着操作一遍:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# jzy
menu ={
"昌平区": {"天通苑":
{"家乐福": {}, "物美": {}, "华联": {}},
"小汤山":
{"龙脉温泉": {}, "健身房": {}}},

"顺义区": {"后沙峪":
{"现代汽车": {}, "汇源果汁": {}, "牛栏山二锅头": {}},
"天竺":
{"飞机场": {}, "燕京啤酒": {}}},

"海淀区": {"雍和宫":
{'航星科技园': {}, '天坛庙会': {}, '肯德基': {}},
"厢红旗":
{'香山': {}, '林业科学研究院': {}, '军事科学研究院': {}}}
}

level = []
while True:
for i in menu:
print(i)
num = input("请选择:")
if num == 'b':
if len(level) == 0:break
menu=level[-1]
level.pop()
if len(num) == 0 or num not in menu: continue
level.append(menu)
menu = menu[num]
看来要学的还有很多,多敲几遍,理解一下吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息