'''程序:三级菜单
要求:
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. Lint found fatal errors while assembling a release target

    1.Android 打包错误信息 Generate signed Bundle or APK  打包时,报了一个错,错误信息如下: Error:Execution failed for task ´: ...

  2. echart tootip使用技巧

    1.关于混合折线图tooltip显示不同单位  formatter: function (params){ return params[0].name + '<br/>' + params ...

  3. mysql如何给字母数字混合的字段排序?

    mysql> select * from t_SpiritInside; +------+ | col  | +------+ | s1   | | s2   | | s11  | | s12  ...

  4. [js]js中函数传参判断

    1,通过|| function fun(x,y){ x=x||0; y=y||1; alert(x+y); } fun(); 2.通过undefined对比 function fun(x,y){ if ...

  5. 记录下diagwait的问题

    对于Oracle集群,有关diagwait的解释可以很容易在网上搜到: 该问题只会出现在ORACLE 11.2 以前版本中,在 11G R2版本中,diagwait的值默认配置为13. 而针对11.2 ...

  6. python-15

    递归特性: 1. 必须有一个明确的结束条件 2. 每次进入更深一层递归时,问题规模相比上次递归都应有所减少 3. 递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种 ...

  7. Vue系列之 => 命名视图实现经典布局

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...

  8. c#中退出WinForm程序包括有很多方法,如:this.Close(); Application.Exit();Application.ExitThread(); System.Environment.Exit(0);

    本文实例总结了C#中WinForm程序退出方法技巧.分享给大家供大家参考.具体分析如下: 在c#中退出WinForm程序包括有很多方法,如:this.Close(); Application.Exit ...

  9. AIX更改用户组

    1:先 修改 user: smit chuser 把id 号给改了.成功! 2:在 修改group 的时候报警告: smit chgroup : can not update the /etc/pas ...

  10. java.lang.ClassCastException: com.sun.proxy.$Proxy* cannot be cast to***

    Spring AOP 有两种代理方法, 一种是常规JDK,一种是CGLIB. 当代理对象实现了至少一个接口时,默认使用JDK动态创建代理对象: 当代理对象没有实现任何接口时,就会使用CGLIB方法. ...