一.作业需求:

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

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

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

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

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

二三级菜单文件内容:

{
'北京':{
"昌平":{
"沙河":["oldboy"],
"天通苑":["链家地产","我爱我家"]
},
"朝阳":{
"望京":["奔驰","陌陌"],
"国贸":{"CICC","HP"},
"东直门":{"Advent","飞信"},
},
"海淀":{},
},
'山东':{
"德州":{"扒鸡"},
"青岛":{"啤酒"},
"济南":{"趵突泉"}
},
'广东':{
"东莞":{"有小姐姐~~"},
"常熟":{"我也不知道是什么"},
"佛山":{"无影脚"},
},
}

代码:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: Colin Yao
import sys
with open('three','r',encoding='utf-8') as f:
file = f.read()
for lines in file:
f_str =str(file)
data = eval(f_str) def list():
for i in data:
print(i)
def chos1(choice1):
while choice1 != 'q':
global one
one = choice1
if choice1 in data:
for i2 in data[one]:
print("\t", i2)
chos2(input("请输入第二层:"))
break
else:
error = input("输入错误,请重新输入第一层:")
if error == 'q':
sys.exit()
else:
chos1(error)
else:
sys.exit() def chos2(choice2):
while choice2 != 'q':
global two
two = choice2
if choice2 in data[one]:
for i3 in data[one][two]:
print("\t\t", i3)
chos3(input("请输入第三层:"))
break
elif choice2 == 'b':
list()
chos1(input("请输入第一层:"))
break
else:
error2 = input("输入错误,请重新输入第二层:")
if error2 == 'q':
sys.exit()
else:
chos2(error2)
else:
sys.exit() def chos3(choice3):
while choice3 != 'q':
global three
three = choice3
if choice3 in data[one][two]:
for i4 in data[one][two][three]:
print("\t\t\t", i4)
chos4(input("最后一层,退回上一层请按‘b’,退出请按'q"))
break
elif choice3 == 'b':
chos1(one)
break
else:
error3 = input("输入错误,请重新输入第三层:")
if error3 == 'q':
sys.exit()
else:
chos3(error3)
else:
sys.exit() def chos4(choice4):
while choice4 != 'q':
if choice4 == 'b':
chos2(two)
else:
chos4(input("最后一层了,退回上一层请按‘b’,退出请按'q'"))
else:
sys.exit() print("退出请按'q',返回上级菜单请按'b,第一层不能使用返回'")
list()
chos1(input("请输入第一层:"))

可以一次循环搞定

待补充ing

python作业三级菜单day1(第一周)的更多相关文章

  1. python作业:三级菜单(第一周)

    一.作业需求: 1. 运行程序输出第一级菜单 2. 选择一级菜单某项,输出二级菜单,同理输出三级菜单 3. 菜单数据保存在文件中 4. 让用户选择是否要退出 5. 有返回上一级菜单的功能 二.三级菜单 ...

  2. python之三级菜单

    python之三级菜单 要求: 1. 运行程序输出第一级菜单 2. 选择一级菜单某项,输出二级菜单,同理输出三级菜单 3. 菜单数据保存在文件中 4. 让用户选择是否要退出 5. 有返回上一级菜单的功 ...

  3. python打怪之路【第三篇】:利用Python实现三级菜单

    程序: 利用Python实现三级菜单 要求: 打印省.市.县三级菜单 可返回上一级 可随时退出程序 coding: menu = { '北京':{ '朝阳':{ '国贸':{ 'CICC':{}, ' ...

  4. day1作业--三级菜单

    作业概述: 写一个三级菜单 实现如下功能: (1)可依次选择进入各子菜单 (2)在每一级按“b”都可以返回上一级,按“q"都可以退出 流程图: readme: 简介: three_menu. ...

  5. 【python】——三级菜单

    作业需求: 打印三级菜单 可返回上一级 可随时退出程序 #!/usr/bin/env python # -*- coding:utf-8 -*- #Author: __Json.Zzgx__ menu ...

  6. Python入门-三级菜单

    作业题目: 三级菜单 作业需求: menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{}, '网易':{}, 'google':{} }, '中关村':{ '爱奇艺':{}, ...

  7. Python学习-------------------三级菜单简单版

    题目: 多级菜单         1.三级菜单         2.可依次选择进入的各子菜单         3.所需新知识点:列表.字典 ReadMe: 这个做循环,比较绕脑子 点开运行即可 Min ...

  8. python作业ATM(第五周)

    作业需求: 额度 15000或自定义. 实现购物商城,买东西加入 购物车,调用信用卡接口结账. 可以提现,手续费5%. 支持多账户登录. 支持账户间转账. 记录每月日常消费流水. 提供还款接口. AT ...

  9. python实现三级菜单源代码

    8月4号早晨天气晴,继续学习‘Alex’的python视频,写了用字典实现三级菜单的代码,都是循环和判断比较lower,废话不多说直接贴码: #!/user/bin/env python #-*-co ...

随机推荐

  1. Chrome Extensions API & options

    Chrome Extensions API options https://developer.chrome.com/extensions https://developer.chrome.com/e ...

  2. Qt快速入门学习笔记(画图篇)

    1.Qt中提供了强大的2D绘图系统,可以使用相同的API在屏幕和绘图设备上进行绘制,它主要基于QPainter.QPaintDevice和QPaintEngine这三个类.其中QPainter用来执行 ...

  3. BZOJ 1022 小约翰的游戏(anti-sg)

    这是个anti-sg问题,套用sj定理即可解. SJ定理 对于任意一个Anti-SG游戏,如果定义所有子游戏的SG值为0时游戏结束,先手必胜的条件: 1.游戏的SG值为0且所有子游戏SG值均不超过1. ...

  4. [洛谷P4999]烦人的数学作业

    题目大意:定义$f(x)$表示$x$每一个数位(十进制)的数之和,求$\sum\limits_{i=l}^rf(i)$,多组询问. 题解:数位$DP$,可以求出每个数字的出现个数,再乘上每个数字的大小 ...

  5. JavaScript转换与解析JSON的方法

    在JavaScript中将JSON的字符串解析成JSON数据格式,一般有两种方式: 一种为使用eval()函数. 使用Function对象来进行返回解析. 使用eval函数来解析,jquery的eac ...

  6. Javascript中的date对象和getTime()方法

    有些时候我们需要计算两个日期间的天数,或者小时数等等.下面用JavaScript实现这个需求,然后学习一下需要用到的一些JavaScript函数. JavaScript程序如下: 1 <scri ...

  7. caffe数据集——LMDB

    LMDB介紹 Caffe使用LMDB來存放訓練/測試用的數據集,以及使用網絡提取出的feature(為了方便,以下還是統稱數據集).數據集的結構很簡單,就是大量的矩陣/向量數據平鋪開來.數據之間沒有什 ...

  8. Ubuntu 16.04使用python3.x相关

    下载pip3 Python 3.x版本使用pip3,它会把你想下载的包放到usr/local/lib/python3.5/dist-packages/下,而非usr/local/lib/python2 ...

  9. 洛谷P3065 [USACO12DEC]第一!First!(Trie树+拓扑排序)

    P3065 [USACO12DEC]第一!First! 题目链接:https://www.luogu.org/problemnew/show/P3065 题目描述 Bessie一直在研究字符串.她发现 ...

  10. mysql中的case when 与if else

    大神说:在sql中,能用if else  就不用case  when 下面来看看,具体为什么,没有搞清楚,如果有大神知道的提供下资料: Mysql的if既可以作为表达式用,也可在存储过程中作为流程控制 ...