Python字典实现三级菜单

原文:https://www.cnblogs.com/pyramid1001/p/5803294.html

 1 ################################################
2 # Task Name: 三级菜单 #
3 # Description:打印省、市、县三级菜单 #
4 # 可返回上一级 #
5 # 可随时退出程序 #
6 #----------------------------------------------#
7 # Author:Oliver Lee #
8 ################################################
9
10 zone = {
11 '山东' : {
12 '青岛' : ['四方','黄岛','崂山','李沧','城阳'],
13 '济南' : ['历城','槐荫','高新','长青','章丘'],
14 '烟台' : ['龙口','莱山','牟平','蓬莱','招远']
15 },
16 '江苏' : {
17 '苏州' : ['沧浪','相城','平江','吴中','昆山'],
18 '南京' : ['白下','秦淮','浦口','栖霞','江宁'],
19 '无锡' : ['崇安','南长','北塘','锡山','江阴']
20 },
21 '浙江' : {
22 '杭州' : ['西湖','江干','下城','上城','滨江'],
23 '宁波' : ['海曙','江东','江北','镇海','余姚'],
24 '温州' : ['鹿城','龙湾','乐清','瑞安','永嘉']
25 },
26 '安徽' : {
27 '合肥' : ['蜀山','庐阳','包河','经开','新站'],
28 '芜湖' : ['镜湖','鸠江','无为','三山','南陵'],
29 '蚌埠' : ['蚌山','龙子湖','淮上','怀远','固镇']
30 },
31 '广东' : {
32 '深圳' : ['罗湖','福田','南山','宝安','布吉'],
33 '广州' : ['天河','珠海','越秀','白云','黄埔'],
34 '东莞' : ['莞城','长安','虎门','万江','大朗']
35 }
36 }
37 province_list = list(zone.keys()) #省列表
38 # flag = False
39 # flag1 = False
40 while True:
41 print(" 省 ".center(50,'*'))
42 for i in province_list:
43 print(province_list.index(i)+1,i) #打印省列表
44 pro_id = input("请输入省编号,或输入q(quit)退出:") #省ID
45 if pro_id.isdigit():
46 pro_id = int(pro_id)
47 if pro_id > 0 and pro_id <= len(province_list):
48 pro_name = province_list[pro_id-1] #根据省ID获取省名称
49 city_list = list(zone[pro_name].keys()) #根据省名称获取对应的值,从新字典中获取key,即市列表
50 while True:
51 print(" 市 ".center(50,'*'))
52 for v in city_list:
53 print(city_list.index(v)+1,v) #打印市列表
54 city_id = input("请输入市编号,或输入b(back)返回上级菜单,或输入q(quit)退出:")
55 if city_id.isdigit():
56 city_id = int(city_id)
57 if city_id > 0 and city_id <= len(city_list):
58 city_name = city_list[city_id-1] #根据市ID获取市名称
59 town_list = zone[pro_name][city_name] #根据省名称获取对应的值,从新字典中获取值,即县列表
60 while True:
61 print(" 县 ".center(50,'*'))
62 for j in town_list:
63 print(town_list.index(j)+1,j)
64 back_or_quit = input("输入b(back)返回上级菜单,或输入q(quit)退出:")
65 if back_or_quit == 'b':
66 break #终止此层while循环,跳转到上一层While。
67 elif back_or_quit == 'q':
68 # flag1 = True
69 # break #根据标志位结束程序。
70 exit()
71 else:
72 print("输入非法!")
73 else:
74 print("编号%d不存在。"%city_id)
75 elif city_id == 'b':
76 break
77 elif city_id == 'q':
78 # flag = True
79 # break
80 exit()
81 else:
82 print("输入非法!")
83 # if flag1:
84 # break
85 else:
86 print("编号%d不存在。"%pro_id)
87 elif pro_id == 'q':
88 break
89 else:
90 print("输入非法!")
91 # if flag or flag1:
92 # break

(转)Python字典实现三级菜单的更多相关文章

  1. Python字典实现三级菜单

    ################################################ # Task Name: 三级菜单 # # Description:打印省.市.县三级菜单 # # 可 ...

  2. python 字典实现三级菜单

    简介:1.用字典建立一个省市县的三级菜单 2.开始显示所有的省份,输入要进入的省份之后,显示该省份下的所有市,输入市显示该市下的所有县 3.在每一级菜单下都可以返回到上一层菜单 4.随时可以退出 me ...

  3. Python学习之三级菜单

    Python经典练习题 - 三级菜单 需求: 可依次选择进入各子菜单 可从任意一层往回退到上一层 可从任意一层退出程序 示例代码: # -*- coding: utf-8 -*- menu = { ' ...

  4. python练习_三级菜单

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

  5. python 小程序—三级菜单—循环和字典练习

    程序中利用多级字典来存储三级菜单, 通过一系列while循环和for循环,实现了三级菜单的查询,选择,退回上级菜单,退出程序几个功能. 缺点:程序语句过于重复,效率低. #-*-coding:utf- ...

  6. Python学习笔记五:字符串常用操作,字典,三级菜单实例

    字符串常用操作 7月19日,7月20日 ,7月22日,7月29日,8月29日,2月29日 首字母大写:a_str.capitalize() 统计字符串个数:a_str.count(“x”) 输出字符, ...

  7. python day1 之三级菜单的正确姿势

    看了几个同学有关三级菜单的实现,都是通过一级一级输出,是较为过程的实现.另外如果菜单(树形结构)更多级这样处理起来就比较麻烦了. 可以使用python强大的列表和字典,实现的更优美或简洁一些: 注:复 ...

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

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

  9. python 购物车和三级菜单

    程序:购物车程序 需求: 启动程序后,让用户输入工资,然后打印商品列表 允许用户根据商品编号购买商品 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 可随时退出,退出时,打印已购买商品和余额 ...

随机推荐

  1. Spring @ResponseBody 返回乱码 的优雅解决办法

    版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 返回的结果中,中文全部被问号(?)代替的解决办法: *-servlet.xml的部分配置如下: <bean id=&quo ...

  2. [译]Javascript timing事件

    本文翻译youtube上的up主kudvenkat的javascript tutorial播放单 源地址在此: https://www.youtube.com/watch?v=PMsVM7rjupU& ...

  3. [转]CMD命令提示符窗口中的快捷键、小技巧和常用命令

    转至:https://wenku.baidu.com/view/d5d2b7ca360cba1aa811dac6.html 快捷键:  F1:按F1一次,命令提示符向后切换到已经执行过的命令字符.如果 ...

  4. javascript js获取url及url参数解析

    js获取url及url参数解析 一.获取url: var url=window.location.herf; 二.url参数解析: function GetRequest() { var url = ...

  5. UWP_开源小程序 水印添加器

    前几天写了一个确定水印位置的小博客.决定要写一个添加水印的UWP程序. 目前程序技术方面已经差不多了.所以提上日程

  6. poj2409(polya 定理模板)

    题目链接:http://poj.org/problem?id=2409 题意:输入 m, n 表示有 m 种颜色,要构造一个长度为 n 的手环,旋转和对称的只算一种,问能组成多少个不同的手环. 思路: ...

  7. Eclipse中使用Spring IOC容器的具体方法

    1.通过IOC容器创建对象,并为属性赋值 在IOC容器本身对象创建时(xml文件加载时),会将配置文件中配置好的bean先创建出来,按照xml文件中配置的先后顺序创建 <bean id=&quo ...

  8. Eclipse中Spring插件的安装及使用

    一.安装流程 1.Help——Install New Software——在Work With中添加地址http://dist.springsource.com/release/TOOLS/updat ...

  9. CF912E Prime Gift 数学

    Opposite to Grisha's nice behavior, Oleg, though he has an entire year at his disposal, didn't manag ...

  10. 11.Find All Numbers Disappeared in an Array(找出数组中缺失的数)

    Level:   Easy 题目描述: Given an array of integers where 1 ≤ a[i] ≤ n (n = size of array), some elements ...