3level_menus
# encoding: utf-8 # Creator:耿亚月 Creation time:2017-1-2
# Modifier:耿亚月 Modification time:2017-1-2 #输入选择的省、市、县
def choose(data, name, level):
for i in data:
print('\t'*level,i)
choice = input('选择进入{name},按b返回》,q退出:'.format(name=name))
return choice #输入选择是否返回上一层
def choose_back(place):
choice=input('Do you want to back to {where}? y/n:'.format(where=place))
return choice #输入选择是否退出
def choose_exit():
choice = input('Do you want to exit? y/n:')
if choice == 'y':
return True data = {
'北京': {
'昌平': {
'沙河': ['oldboy','test'],
'天通苑': ['链家地产','我爱我家'],
},
'朝阳': {
'望京': ['奔驰','陌陌'],
'国贸': ['CICC','HP'],
'东直门': ['Advent','飞信'],
},
'海淀': {},
},
'山东': {
'德州': {},
'青岛': {},
'济南': {},
},
'广东': {
'东莞': {},
'常熟': {},
'佛山': {},
},
} exit_flag = False
#省
while not exit_flag:
choice = choose(data, '省', 0)
if choice in data:
#市
while not exit_flag:
choice2 = choose(data[choice], '市', 1)
if choice2 in data[choice]:
#县
while not exit_flag:
choice3 = choose(data[choice][choice2], '县', 2)
if choice3 in data[choice][choice2]:
print(data[choice][choice2][choice3])
exit_flag = True
#县
elif choice3 == 'b':
if choose_back('县') == 'y':
break
elif choice3 == 'q':
exit_flag = choose_exit()
else:
print('Invalid choice,please try again')
#市
elif choice2 == 'b':
if choose_back('省') == 'y':
break
elif choice2 == 'q':
exit_flag = choose_exit()
else:
print('Invalid choice,please try again')
#省
elif choice == 'q':
exit_flag = choose_exit()
else:
print('Invalid choice,please try again')
3level_menus的更多相关文章
随机推荐
- flag+文件操作
flag标志位,标识位,在其他语言中可能叫开关,个人觉得当作开关更容易理解.下面我们来利用这个开关来控制文件操作的流程,从而优雅的修改配置文件. global log 127.0.0.1 local2 ...
- intel82599在centos6.5下编译安装
.intel驱动下载地址:https://sourceforge.net/projects/e1000/files/ixgbe%20stable/ .编译安装步骤 yum install kernel ...
- CEF源码编译和生产库的使用
CEF版本是Branch 2171 开发环境是VS2012 查看一下libcef_dll_wrapper工程属性,确定Code Generation 选择MTD(Debug) 或者MT(Release ...
- ubuntu gtk2.0 一个简单完整的窗口
//gtk_main();开了线程,关闭窗口并不能退出程序,需要手动添加 //gtk2.0,window quit compelete example #include <gtk/gtk.h&g ...
- Java-坦克大战
利用Java语言中的集合.Swing.线程等知识点编写一个坦克大战游戏.(1) 画出敌我坦克的原理:在坦克类里面有一个布尔类型变量good.用于判断坦克的阵营,在创建坦克对象时在Tank类的构造方法中 ...
- 微信小程序-发起请求
wx.request(object) wx.request发起的是https请求.一个微信小程序,同时只能有5个网络请求连接. object参数说明: 示例代码: wx.request({ url: ...
- Solr搭建大数据查询平台
参考文章:http://www.freebuf.com/articles/database/100423.html 对上面链接的补充: solr-5.5.0版本已被删除,新url:http://mir ...
- php : 配置
一. php: undefined function mysql_connect() mac 上操作 一.有可能是因为版本不同而引起的 PHP5中使用mysql_connect()函数进行连接.但P ...
- mac下安装 xampp 无法启动apache (转,留用)
1.查看端口是否被占用 sudo lsof -i -n 2.用终端运行xampp,查看具体的错误 sudo su /Applications/XAMPP/xamppfiles/xampp star ...
- jquery.trim() vs JS.trim()
如果你在IE8浏览器下开发网站,其实这是个假命题,因为原生的javascript 并不支持 .trim()方法,如果你写了类似document.getElementByID().trim();的代码, ...