首页 > 编程语言 > 详细

python初级之路-多级菜单

时间:2020-06-30 19:37:57      阅读:53      评论:0      收藏:0      [点我收藏+]

前言:

        1、实现一个三级菜单,例如:省-市-县

        2、可依次选择进入各级菜单,可以选择返回上一层菜单,以及直接退出整个菜单

        3、所需知识点:列表、字典

 

思路:

        将‘省-市-县’数据保存在字典city变量中,根据用户输入返回对应子级菜单;如果用户输入‘b’或者‘B’,就返回上一级菜单;输入‘q’或者‘Q’,则退出整个菜单(父级菜单只有‘q’或者‘Q’选择)。

 

实现代码:

 1 #!/usr/bin/env python3
 2 # -*- coding: utf-8 -*-
 3 
 4 city = {     # 定义一个‘省-市-县‘字典变量
 5     北京: {
 6         东城区: [东华门, 景山, 交道口, 安定门, 北新桥, 朝阳门, 建国门, B & b, Q & q],
 7         朝阳区: [六里屯, 八里庄, 三里屯, 和平街, 左家庄, 香河园, 建外, B & b, Q & q],
 8         丰台区: [清源, 兴丰, 林校路, 观音寺, 天宫院, 高米店, 荣华, 博兴, B & b, Q & q],
 9         海淀区: [海淀, 青龙桥, 清华园, 燕园, 西三旗, 甘家口, 万寿路, B & b, Q & q],
10         通州区: [中仓, 新华, 北苑, 玉桥, 潞源, 通运, 永顺, 梨园, B & b, Q & q],
11         大兴区: [观音寺, 林校路, 清源, 天宫院, 博兴, 荣华, 青云店镇, B & b, Q & q],
12         昌平区: [城北, 南口, 马池口, 沙河, 东小口, 回龙观, B & b, Q & q],
13         B & b: 返回,
14         Q & q: 退出
15     },
16     上海: {
17         黄浦区: [南京东路, 外滩, 瑞金二路, 豫园, 老西门, 小东门, 五里桥, B & b, Q & q],
18         普陀区: [桃浦镇, 万里, 甘泉路, 石泉路, 长寿路, 宜川路, 长征镇, B & b, Q & q],
19         浦东新区: [曹路镇, 金桥镇, 高行镇, 高东镇, 张江镇, 三林镇, 惠南镇, B & b, Q & q],
20         杨浦区: [定海路, 平凉路, 江浦路, 四平路, 控江路, 长白新村, 殷行, B & b, Q & q],
21         宝山区: [罗店镇, 大场镇, 杨行镇, 月浦镇, 罗泾镇, 顾村镇, 高境镇, B & b, Q & q],
22         徐汇区: [湖南路, 天平路, 枫林路, 徐家汇, 康健新村, 虹梅路, 田林, B & b, Q & q],
23         B & b: 返回,
24         Q & q: 退出
25     },
26     深圳: {
27         罗湖区: [桂园, 黄贝, 东门, 南湖, 东湖, 莲塘, 清水河, B & b, Q & q],
28         福田区: [园岭, 南园, 福田, 梅林, 香蜜湖, 莲花, 华强北, B & b, Q & q],
29         宝安区: [新安, 西乡, 航城, 福永, 福海, 沙井, 新桥, 松岗, B & b, Q & q],
30         龙华区: [观湖, 民治, 龙华, 大浪, 福城, 观澜, B & b, Q & q],
31         南山区: [南山, 南头, 西丽, 沙河, 蛇口, 桃源, B & b, Q & q],
32         B & b: 返回,
33         Q & q: 退出
34     },
35     Q & q: 退出
36 }
37 
38 # print(city[‘深圳‘].keys())
39 while True:
40     print()
41     print(list(city.keys()))    # 将一级菜单给用户参考输入
42     ct = input("请输入要查询的城市:").strip()
43     if ct in city:    # 判断用户输入是否在一级菜单中,如果是则打印二级菜单选项
44         print()
45         print(list(city[ct].keys()))
46         while True:
47             area = input("请输入要查询的地区:")
48             if area in city[ct].keys():
49                 print()
50                 print(list(city[ct][area]))
51                 while True:
52                     street = input("请输入要查询的街道:")    # 要求用户输入三级菜单
53                     if street in city[ct][area]:
54                         print("您好,欢迎来到%s市%s%s街道。" % (ct, area, street))
55                         quit()
56                     elif street == b or street == B:
57                         print("返回上一层。")
58                         break
59                     elif street == q or street == Q:
60                         print("退出查询,欢迎再次使用。")
61                         quit()
62                     else:
63                         print("未查询到%s市%s%s街道,请重新输入。" % (ct, area, street))
64             elif area == b or area == B:    # 当用户输入‘b‘或‘B‘时,返回上一级菜单
65                 print("返回上一层。")
66                 break
67             elif area == q or area == Q:
68                 print("退出查询,欢迎再次使用。")
69                 quit()
70             else:
71                 print("未查询到%s市%s,请重新输入。" % (ct, area))
72     elif ct == q or ct == Q:    # 当用户输入‘q‘或者‘Q‘时,退出整个查询
73         print(退出查询,欢迎再次使用。)
74         quit()
75     else:    # 当查询不到用户输入时,要求用户重新输入
76         print("您输入的城市暂未入库,请重新输入。")

 

实现效果:

技术分享图片

python初级之路-多级菜单

原文:https://www.cnblogs.com/lanten2020/p/13215193.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!