'''程序:三级菜单
要求:
1、打印省、市、县三级菜单
2、可返回上一级
3、可随时退出程序
'''
 # -*- coding: utf-8 -*-
# __author__ = 'qi'
prov_city_conty ={"北京":
{"东城区","西城区","崇文区","宣武区","朝阳区","丰台区","石景山区","海淀区","顺义区"},
"上海":
{"黄埔区","卢湾区","徐汇区","长宁区","静安区","普陀区","闸北区","杨浦区","闵行区"},
"河北":
{
"石家庄市":
{"长安区","桥东区","桥西区","新华区","井陉矿区","裕华区"},
"唐山市":
{"路南区","路北区","古冶区","开平区","丰润区","滦县"}
},
"江苏":
{
"南京市":
{"玄武区","白下区","秦淮区","建邺区","鼓楼区","下关区","浦口区"},
"苏州市":
{"沧浪区","平江区","金阊区","吴中区","相城区","常熟市"}
}
}
while True:
print ("-----打印省菜单------")
for index,prov in enumerate(prov_city_conty,1):
print index, prov
choice_p_menu = raw_input("please select province number[quit:q]:")
if choice_p_menu.isdigit():
choice_p_menu = int(choice_p_menu)
if choice_p_menu>0 and choice_p_menu<len(prov_city_conty):
prov_name_list = prov_city_conty.keys()
prov_name = prov_name_list[choice_p_menu-1]
while True:
print ("-----"+prov_name+"------")
for index,city in enumerate(prov_city_conty[prov_name],1):
print index,city
if prov_name not in ["北京","上海"]:
choice_city_menu = raw_input("please select city number[quit:q]|[return:r]:")
if choice_city_menu.isdigit():
choice_city_menu = int(choice_city_menu)
if choice_city_menu>0 and choice_city_menu<len(prov_city_conty[prov_name]):
city_name_list = prov_city_conty[prov_name].keys()
city_name = city_name_list[choice_city_menu-1]
while True:
print ("-----"+city_name+"------")
for county in prov_city_conty[prov_name][city_name]:
print county
choice_q_r_menu = raw_input("please select [quit:q]|[return:r]:")
if choice_q_r_menu == "q":
exit()
elif choice_q_r_menu == "r":
break
else:
print("your input code %s is not exist!" %choice_q_r_menu)
continue
else:
print ("city code %s is not exist!" %choice_city_menu)
continue
elif choice_city_menu == "q":
exit()
elif choice_city_menu == "r":
break
else:
choice_q_r_menu = raw_input("please select [quit:q]|[return:r]:")
if choice_q_r_menu == "q":
exit()
elif choice_q_r_menu == "r":
break
else:
print("your input code %s is not exist!" %choice_q_r_menu)
continue
else:
print ("province code %s is not exist!" %choice_p_menu)
elif choice_p_menu == "q":
break

python_入门_三级菜单的更多相关文章

  1. python练习_三级菜单

    python练习_三级菜单 需求: 做一个地区查询三级菜单,输入一级能够打印下一级 在第三级个第二级输入e可以返回上一级 在任意一级输入q则退出程序 以下代码实现的功能与思路: 功能: (1)通过In ...

  2. [作业] Python入门基础--三级菜单

    用字典存储数据 可以随时返回上一级,随时退出程序 只能用循环判断等内置方法,不得导入模块 menu = { '广东':{ '广州':{ '越秀区':{ '面积':'33.80', '人口':'115万 ...

  3. Python_简单三级菜单制作

    一:制作要求 1.三级菜单 2.可依次选择进入各子菜单 3.所需新知识点:字典,列表 *本文通过三种方法完成,第一种:只使用循环,第二种:使用列表,第三种:使用字典 二:FlowChart流程图 与上 ...

  4. Python入门-三级菜单

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

  5. python3 三级菜单

    python版本3.5 功能: 1.程序执行显示一级菜单,输入内容进入二级菜单: 2.进入二级菜单后,输入二级菜单内容,进入三级菜单:输入b返回一级菜单: 3.进入三级菜单后,输入b返回二级菜单. # ...

  6. opencart3调用三级菜单level 3 sub categories

    Opencart 3的menu菜单默认只调用一级和二级菜单,但很多电商网站类目复杂,三级菜单一般都是需要的,甚至更深,那么如何调用三级菜单level 3 sub categories呢?ytkah有一 ...

  7. python三级菜单实例(傻瓜版和进阶版)

    程序: python三级菜单 要求: : 1.打印省.市.县三级菜单 2.可返回上一级 3.可随时退出程序 方案一:傻瓜版(其实傻瓜版考察的主要是思路!思路清楚了,那才不是傻瓜!O(∩_∩)O哈哈~) ...

  8. 三级菜单打怪升级,young -> plus -> pro

    young -> simple 三级菜单超简单,每层都是小循环 小可爱,不是if就是for,真可爱 def menu(message): print('按q返回上一层') print('按e退出 ...

  9. python学习笔记(字符串操作、字典操作、三级菜单实例)

    字符串操作 name = "alex" print(name.capitalize()) #首字母大写 name = "my name is alex" pri ...

随机推荐

  1. 002-自定义打开terminal,以及快捷键,其他程序类似,ssh管理-sshpass, Shuttle

    一.利用Automator软件完成服务设定 1.使用Command+Space,打开Spotlight,搜索Automator 2.搜索到之后,双击打开,选择“服务[或快速操作]” 3.将“服务收到[ ...

  2. MySQL的分区、分表、集群

    1.分区 mysql数据库中的数据是以文件的形势存在磁盘上的,默认放在/mysql/data下面(可以通过my.cnf中的datadir来查看),一张表主要对应着三个文件,一个是frm存放表结构的,一 ...

  3. [js] 渲染树构建、布局及绘制

    渲染树构建.布局及绘制

  4. JDK 1.8源码阅读 TreeMap

    一,前言 TreeMap:基于红黑树实现的,TreeMap是有序的. 二,TreeMap结构 2.1 红黑树结构 红黑树又称红-黑二叉树,它首先是一颗二叉树,它具体二叉树所有的特性.同时红黑树更是一颗 ...

  5. ZooKeeper之service discovery

    Zookeeper整体介绍 ZooKeeper is a centralized service for maintaining configuration information, naming, ...

  6. [LeetCode] 62. Unique Paths_ Medium tag: Dynamic Programming

    A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below). The ...

  7. 6种原型设计工具大比对! Axure,Invision, 墨刀……哪款适合你?

    每一年的毕业季都是找工作高峰时期,产品经理.UI设计师这些岗位都会接触到原型设计工具.选择原型设计工具最重要的一点:适合自己的才是最好的! 下文将对目前超火的原型工具进行大对比,快来看看那一款于你而言 ...

  8. js中变量名加“-” new Vue()不执行

    如var app-1 = new Vue(): 不执行的 var app1 = new Vue(): 才能执行

  9. Linux平台 Oracle 18c RAC安装Part1:准备工作

    一.实施前期准备工作 1.1 服务器安装操作系统 1.2 Oracle安装介质 1.3 共享存储规划 1.4 网络规范分配 二.安装前期准备工作 2.1 各节点系统时间校对 2.2 各节点关闭防火墙和 ...

  10. NOIP2017感想

    说实话,这次刚刚看到题目的时候真的有点懵.尤其是第一天的第一题,浪费了太多的时间,一开始天真的以为10的9次方,会爆long long.然后就特别傻的写一个高精度,总觉得自己有哪些细节方面处理的不到位 ...