要求:

  1. 可选择进入各级子菜单
  2. 在各级菜单下可以选择退出
  3. 在子菜单下可以返回上一级菜单

Readme:

  运行程序,输入菜单选项,进入对应的子菜单

# Joe Young

data = {
'山东':{
'济南':[
'市中区', '天桥区', '历下区', '槐荫区', '历城区', '章丘市',
'长清县', '平阴县', '济阳县', '商河县'
],
'青岛':[
'市南区', '市北区', '四方区', '李沧区', '黄岛区', '崂山区',
'城阳区', '胶州市', '即墨市', '平度市', '胶南市', '莱西市'
],
'枣庄':[
'市中区', '寒亭区', '台儿庄', '峄城区', '薛城区', '滕州市'
],
'东营':[
'东营区', '河口区', '牛庄区', '利津县', '垦利县', '广饶县'
],
'潍坊':[
'潍城区', '坊子区', '寒亭区', '奎文区', '青州市', '诸城市',
'寿光市', '安丘市', '高密市', '昌邑市', '昌乐县', '临朐县'
],
'滨州':[
'滨州市', '沾化县', '博兴县', '邹平县', '惠民县', '阳信县',
'无棣县'
],
'烟台':[
'芝罘区', '福山区', '莱山区', '牟平区', '龙口市', '莱阳市',
'蓬莱市', '招远市', '栖霞市', '海阳市', '莱州市', '长岛县'
],
'济宁':[
'市中区', '任城区', '曲阜市','兖州市', '邹城市', '汶上县',
'泗水县', '微山县', '金乡县','嘉祥县', '鱼台县'
],
'泰安':[
'泰山区', '郊区', '新泰市', '肥城市', '宁阳县', '东平县'
],
'威海':[
'环翠区', '荣城市', '文登市', '乳山市'
],
'日照': [
'东港区', '五莲县', '莒县'
],
'莱芜': [
'莱城区', '钢城区'
],
'临沂': [
'兰山区', '罗庄区', '河东区', '沂南县', '沂水县', '莒南县',
'临沭县', '郯城县', '苍山县', '费县', '平邑县', '蒙阴县'
],
'菏泽': [
'菏泽市', '鄄城县', '巨野县', '成武县', '单县', '定陶县',
'曹县', '东明县', '郓城县'
],
'聊城': [
'东昌府区', '临清市', '高唐县', '茌平县', '东阿县', '阳谷县',
'莘县', '冠县'
],
'德州': [
'德州区', '乐陵市', '禹城市', '陵县', '平原县', '夏津县',
'武城县', '齐河县', '临邑县', '宁津县', '庆云县'
]
}, '北京':{
'东城区':[
'安定门', '建国门', '朝阳门', '东直门', '东华门'
],
'西城区':[
'西长安街', '金融街', '牛街', '广安门内', '广安门外'
],
'朝阳区':[
'南磨房', '高碑店', '将台', '太阳宫', '小红门'
],
'丰台区':[
'右安门', '太平桥', '西罗园', '大红门', '南苑'
],
'石景山区':[
'八宝山', '老山', '八角', '古城', '苹果园'
],
'海淀区':[
'万寿路', '羊坊店', '甘家口', '八里庄', '紫竹院'
]
}, '天津':{
'西青区':{
'西营门街道', '李七庄街道', '赤龙南街道', '赤龙北街道', '中北镇'
},
'和平区':{
'劝业场街道', '小白楼街道', '五大道街道', '新兴街道', '南营门街道'
},
'河东区':{
'大王庄街道', '大直沽街道', '中山门街道', '富民路街道', '二号桥街道'
},
'河西区':{
'大营门街道', '下瓦房街道', '桃园街道', '挂甲寺街道', '马场街道'
},
'南开区':{
'长虹街道', '鼓楼街道', '兴南街道', '广开街道', '万兴街道'
}
}
} while True:
for i in data: # 输出一级菜单
print(i) level1 = input('选择进入,或输入q退出:') if level1 == 'q': # 输入'q'退出
exit() if level1 not in data: # 判断输入是否正确
print('输入有误,请重新输入:')
continue
else:
while True:
for j in data[level1]: # 输出二级菜单
print('\t', j) level2 = input('选择进入,输入b返回上一级,输入q退出:') if level2 == 'q': # 输入'q'退出
exit()
elif level2 == 'b': # 输入'b'返回一级菜单
break
else:
if level2 not in data[level1]: # 判断输入是否正确
print('输入有误,请重新输入:')
continue # 输入有误,结束本次循环
else:
for k in data[level1][level2]: # 输出三级菜单
print('\t\t', k) flag = True
while flag:
choice = input('输入b返回上一级,输入q退出:')
if choice == 'b':
flag = False
elif choice == 'q':
exit()
else:
continue
else: # 输入'b' 时,flag = False,结束 119 行的 while 循环
continue

python 实现三级菜单的更多相关文章

  1. python打怪之路【第三篇】:利用Python实现三级菜单

    程序: 利用Python实现三级菜单 要求: 打印省.市.县三级菜单 可返回上一级 可随时退出程序 coding: menu = { '北京':{ '朝阳':{ '国贸':{ 'CICC':{}, ' ...

  2. python之三级菜单

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

  3. 【python】——三级菜单

    作业需求: 打印三级菜单 可返回上一级 可随时退出程序 #!/usr/bin/env python # -*- coding:utf-8 -*- #Author: __Json.Zzgx__ menu ...

  4. Python学习-------------------三级菜单简单版

    题目: 多级菜单         1.三级菜单         2.可依次选择进入的各子菜单         3.所需新知识点:列表.字典 ReadMe: 这个做循环,比较绕脑子 点开运行即可 Min ...

  5. python作业三级菜单day1(第一周)

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

  6. python实现三级菜单源代码

    8月4号早晨天气晴,继续学习‘Alex’的python视频,写了用字典实现三级菜单的代码,都是循环和判断比较lower,废话不多说直接贴码: #!/user/bin/env python #-*-co ...

  7. python实现三级菜单间的前后跳转

    #录入菜单def createMenu():    Menu = {}    provinces = ["陕西","四川","江苏"] sh ...

  8. Python入门-三级菜单

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

  9. python 打印三级菜单

    要求: 1.用户选择城市菜单编号显示对应的下级菜单 2.可以返回上级菜单,只有在用户确定正常退出时才退出 #!/usr/bin/env python3 # -*- coding: utf-8 -*- ...

随机推荐

  1. echarts的部署和使用

    echarts是百度开发的一款商业级.开源免费的前端图表组件,具体可访问其主页:http://echarts.baidu.com/ echarts目前已经发布了2.0版本,使用起来非常的方便,并且效果 ...

  2. etcd raft如何实现成员变更

    成员变更在一致性协议里稍复杂一些,由于不同的成员不可能在同一时刻从旧成员组切换至新成员组,所以可能出现两个不相交的majority,从而导致同一个term出现两个leader,进而导致同一个index ...

  3. 类 java.util.Scannar方法

    类 java.util.Scannar方法 ·Scannar (InputStream ln):用给定的输人流创建一个Scanner对象. ·String nextLlne():读取输入的下一行内容. ...

  4. Python基础之常用模块(一)

    模块本质就是一个.py文件,在安装目录下的lib文件夹下可以看到 模块分为三个部分:内置模块(存在于解释器中),第三方模块(lib文件夹下),自定义模块(自己定义的) 1.time模块 import ...

  5. oracle高级查询(实例基于scott用户四张表)

    oracle高级查询(实例基于scott用户四张表) 分组查询 多表查询 子查询 综合实例 ====================================================== ...

  6. ABP从入门到精通(2):aspnet-zero-core 使用MySql数据库

    关于 asp.net zero core 项目的启动及说明,请观看我前面的博文 http://www.cnblogs.com/stulzq/p/7237153.html 本操作对于ABP默认项目应该也 ...

  7. Python:使用Kivy将python程序打包为apk文件

    1.概述 Kivy是一套Python下的跨平台开源应用开发框架,官网,我们可以用 它来将Python程序打包为安卓的apk安装文件.以下是在windows环境中使用. 安装和配置的过程中会下载很多东西 ...

  8. android调用系统相机进行视频录制并保存到指定目录

    最近在做视频录制上传,调用的是系统的相机. 在做之前查了一些资料,发现好多人遇到保存到指定目录不成功的现象.自己写的时候就注意这些,最后发现他们遇到的问题我这边根本没有.可能是他们写法有问题吧. 下边 ...

  9. Python基础学习 -- 列表与元组

    本节学习目的: 掌握数据结构中的列表和元组 应用场景: 编程 = 算法 + 数据结构 数据结构: 通过某种方式(例如对元素进行编号)组织在一起的数据元素的集合,这些元素可以是数字或者字符,或者其他数据 ...

  10. Java 编程 订单、支付、退款、发货、退货等编号主动生成类

    订单.支付.退款.发货.退货等编号主动生成类 在商城网站中,订单编号的自动生成,ERP中各个单据的编号自动生成,都可以按照一下的方式来自动生成. 第一步:定义常量订单编号前缀.订单编号起始数.订单编号 ...