博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python实现三级菜单
阅读量:5862 次
发布时间:2019-06-19

本文共 3493 字,大约阅读时间需要 11 分钟。

#要求:

打印省、市、县三级菜单
可返回上一级
可随时退出程序

#!/usr/bin/python#_*_coding:utf-8_*_map_menu = {    '河北省':{        '石家庄市':['长安区','桥西区','新华区','裕华区','井陉矿区','藁城区','鹿泉区','栾城区','赵县','平山县'],        '沧州市':['泊头市','南皮市','任丘市','青县','新华区','运河区','高新区','渤海新区','黄骅','河间','献县'],        '唐山市':['路南区','路北区','丰南区','开平区','丰润区','遵化市','迁安市','迁西县','玉田县']    },    '广东省':{        '广州市':['荔湾区','越秀区','海珠区','天河区','白云区','黄埔区','番禺区','花都区','增城区','从化区'],        '深圳市':['罗湖区','福田区','南山区','宝安区','龙岗区','盐田区','光明新区','深汕区','坪山区','龙华区'],        '珠海市':['香洲区','斗门区','金湾区','拱北区']    },    '北京省':{        '北京市':['东城区','西城区','朝阳区','海淀区','丰台区','昌平区','石景山区','大兴区','怀柔区','通州区','顺义区']    },    '辽宁省':{        '沈阳市':['和平区','沈河区','大东区','皇姑区','铁西区','苏家屯区','东陵区','沈北新区','于洪区','康平县'],        '大连市':['中山区','西岗区','沙河口区','甘井子区','旅顺口区','金州区','瓦房店市','庄河市','长海县'],        '鞍山市':['铁东区','铁西区','立山区','千山区','海城市','台安县','岫岩满族自治县']    },    '湖南省':{        '长沙市':['岳麓区','芙蓉区','天心区','开福区','雨花区','望城区','长沙县','浏阳市','宁乡市'],        '株洲市':['天元区','荷塘区','芦淞区','石峰区','醴陵市','株洲县','炎陵县','茶陵县','攸县'],        '湘潭市':['岳塘区','雨湖区','湘乡市','韶山市','湘潭县']    }}# 打印省份列表province_name_list = list(map_menu.keys())while True:    print("Province List".center(40, '-'))    # 打印省份列表    for name in province_name_list:        print(province_name_list.index(name)+1,name)    # 选择需要的省份    province_id = input('请输入与省份对应的编号,输入q退出程序. >>: ').strip()    # 选择省份序号的规则制定,不符合则告知输入对应的序号    if province_id.isdigit():        province_id = int(province_id)        if province_id > 0 and province_id <= len(province_name_list):            #根据省ID,获取对应省的名称            province_name = province_name_list[province_id - 1]            print(province_name)            # 根据省名称,获取对应的市列表            city_name_list = list(map_menu[province_name].keys())            while True:                print("City List".center(40, '-'))                # 打印市列表                for city_name in city_name_list:                    print(city_name_list.index(city_name)+1,city_name)                city_id = input('请输入与市对应的编号,输入b返回上级菜单,输入q退出程序! >>: ').strip()                if city_id.isdigit():                    city_id = int(city_id)                    # 判断输入city_id的内容                    if city_id > 0 and city_id <= len(city_name_list):                        # 根据市ID,获取市的名称                        city_name = city_name_list[city_id - 1]                        print(city_name)                        # 获取县(区)的列表                        county_name_list = map_menu[province_name][city_name]                        while True:                            print('County List'.center(40,'-'))                            # 打印县(区)列表                            for county_name in county_name_list:                                print(county_name_list.index(county_name)+1,county_name)                            signal = input('输入b返回上一级菜单,输入q退出程序!>>: ').strip()                            if signal == 'b':                                break                            elif signal == 'q':                                exit()                            else:                                print('您输入的%s不存在,b返回上一级,q退出程序!' %signal)                    else:                        print('您输入的%s编号不存在,请输入与城市对应的编号!' %city_id)                elif city_id == 'b':                    break                elif city_id == 'q':                    exit()        else:            print('您输入的%s编号不存在,请输入与省对应的编号!' %province_id)    elif province_id == 'q':        exit()    else:        print('输入不合法,请重新输入!')

转载于:https://blog.51cto.com/11019859/2049775

你可能感兴趣的文章
一图看懂host_only nat bridge拓扑结构
查看>>
Freemarker操作字符串
查看>>
mysql日期/时间转换为字符串
查看>>
Spring MVC之@RequestParam @RequestBody @RequestHeader 等详解
查看>>
JAVA各种系统架构图及其简介
查看>>
在 Angularjs 中 ui-sref 和 $state.go 如何传递参数
查看>>
【Android 工具类】经常使用工具类(方法)大全
查看>>
ElasticSearch文档
查看>>
MongoDB(一)环境搭建与初始配置
查看>>
Webpack编译结果浅析
查看>>
redis面试题总结
查看>>
PHP函数高级(二)
查看>>
POJ-3070Fibonacci(矩阵快速幂求Fibonacci数列)
查看>>
【设计模式】Singleton模式C++实现
查看>>
java 从零开始,学习笔记之基础入门<集合>(十六)
查看>>
[外挂7] 井字棋外挂 博弈算法
查看>>
如何让听众对你的演示感兴趣
查看>>
XP支持AHCI硬盘工作模式
查看>>
Machine Learning – 第2周(Linear Regression with Multiple Variables、Octave/Matlab Tutorial)
查看>>
李洪强iOS经典面试题32-简单介绍 ARC 以及 ARC 实现的原理
查看>>