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

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

一、要求: 1、一开始打印出所有省份和提示 

      2、用户输入省份以此查询城市

      3、在按照输出的城市名提示用户输入,最后输出用户所查询的区县名

      4、随时输入“back”可以返回上一级菜单

      5、输入“Q”可以结束整个程序

      6、若输入的内容无效则重新输入

二、流程图:

三、步骤:

1、先将所需的数据存储。(利用字典和列表的嵌套)

2、获取到所有的省份名

3、获取到所有的城市名

4、判断用户输入是否有效,并执行相应功能

四、代码如下

import osregion = {     '山东' : {         '青岛' : ['四方','黄岛','崂山','李沧','城阳'],         '济南' : ['历城','槐荫','高新','长青','章丘'],         '烟台' : ['龙口','莱山','牟平','蓬莱','招远']     },     '江苏' : {        '苏州' : ['沧浪','相城','平江','吴中','昆山'],         '南京' : ['白下','秦淮','浦口','栖霞','江宁'],         '无锡' : ['崇安','南长','北塘','锡山','江阴']    },     '浙江' : {         '杭州' : ['西湖','江干','下城','上城','滨江'],         '宁波' : ['海曙','江东','江北','镇海','余姚'],         '温州' : ['鹿城','龙湾','乐清','瑞安','永嘉']     },     '安徽' : {         '合肥' : ['蜀山','庐阳','包河','经开','新站'],         '芜湖' : ['镜湖','鸠江','无为','三山','南陵'],         '蚌埠' : ['蚌山','龙子湖','淮上','怀远','固镇']     },     '广东' : {         '深圳' : ['罗湖','福田','南山','宝安','布吉'],         '广州' : ['天河','珠海','越秀','白云','黄埔'],         '东莞' : ['莞城','长安','虎门','万江','大朗']     }}print("'back'--返回上一级    'Q'--结束程序")#获取省份列表province_list = list(region.keys())print(province_list)#获取城市列表city_list = []for i in range(province_list.__len__()):    tem = list(region[province_list[i]].keys())    city_list.append(tem)while 1:    #省份查询    cinprovince = input("请输入所要查询的省名: ")    if cinprovince in province_list:        city_index = province_list.index(cinprovince)        print('''%s : %s'''%(cinprovince,city_list[city_index]))        #城市查询        while 1:            cincity = input("请输入所要查询的城市名: ")            if cincity in city_list[city_index]:                print('''%s : %s'''%(cincity,region[cinprovince][cincity]))                sign = input("请输入命令:  ")                if sign == "Q":                    os._exit(0)                elif sign == 'back':                    print('''%s : %s'''%(cinprovince,city_list[city_index]))                    break            elif cincity == 'Q':                os._exit(0)            elif cincity == 'back':                break    elif cinprovince == 'Q':        os._exit(0)    else:        print(province_list)        continue

 

 五、心得:

1、os._exit()可以结束整个程序的执行,exit()也可以结束程序的执行,不过如果放在if或者for中,则只结束当前域内的程序,类似于break的功能

2、list(列表名.keys())与列表名.keys()的区别在于:前者打印出来之后没有dict.keys声明

3、listname.index(n)可以返回n所在listname中的下标

 

转载于:https://www.cnblogs.com/cencenyue/p/7270636.html

你可能感兴趣的文章
jquery datagrid 后台获取datatable处理成正确的json字符串
查看>>
ActiveMQ与spring整合
查看>>
web服务器
查看>>
网卡流量检测.py
查看>>
poj1981 Circle and Points 单位圆覆盖问题
查看>>
POP的Stroke动画
查看>>
SQL语句在查询分析器中可以执行,代码中不能执行
查看>>
yii 1.x 添加 rules 验证url数组
查看>>
html+css 布局篇
查看>>
SQL优化
查看>>
用C语言操纵Mysql
查看>>
轻松学MVC4.0–6 MVC的执行流程
查看>>
redis集群如何清理前缀相同的key
查看>>
Python 集合(Set)、字典(Dictionary)
查看>>
获取元素
查看>>
proxy写监听方法,实现响应式
查看>>
第一阶段冲刺06
查看>>
十个免费的 Web 压力测试工具
查看>>
EOS生产区块:解析插件producer_plugin
查看>>
mysql重置密码
查看>>