python编写一个三级while的循环菜单实例
下面这篇文章介绍python是如何编写一个三级while的循环菜单的
1.定义字典,字典里面嵌套字典,内嵌字典的值为列表。
思路:
<strong><span style='font-family: "Microsoft YaHei"; font-size: 14px'>湖北省的市:字典中的</span></strong><br><strong><span style='font-family: "Microsoft YaHei"; font-size: 14px'>定义3个字典,用于存储</span></strong><br><br><strong><span style='font-family: "Microsoft YaHei"; font-size: 14px'>{序列-键:市名}</span></strong>
shiqu_dir = {}
{序列-键:县}
xian_dir ={}
{序列-键:街道}
jiedao_dir = {}
函数将序列和键一一对应。
<strong><span style='font-family: "Microsoft YaHei"; font-size: 14px'>for number,key in enumerate(Hbei_map.keys()) 获取序列键和市名存储到 市名字典</span></strong><br><br><strong><span style='font-family: "Microsoft YaHei"; font-size: 14px'>用一个列表 chose = [] 来存储所选择的市--县程-街道</span></strong>
<strong><span style='font-family: "Microsoft YaHei"; font-size: 14px'>chose[0],chose[1],chose[2]最后使用切片返回</span></strong><br><br><strong><span style='font-family: "Microsoft YaHei"; font-size: 14px'>中间输入全部使用的判断方式for循环: for k,v in xxx.items():</span></strong><br><strong><span style='font-family: "Microsoft YaHei"; font-size: 14px'> if input == k:</span></strong><br><strong><span style='font-family: "Microsoft YaHei"; font-size: 14px'>让用户只能输入序列中的数字。使用判断语句:</span></strong>
<strong><span style='font-family: "Microsoft YaHei"; font-size: 14px'> if int(input) not in 字典.keys():</span></strong><br><strong><span style='font-family: "Microsoft YaHei"; font-size: 14px'> print("您输入了非法的序列,请输入一下序列 {}".format(shiqu_list))</span></strong><br><br>


# -*- coding: utf-8 -*-__author__ = 'hujianli'import sys Hbei_map = {"武汉市":{"江岸区":["上海街","大智街","一元街","车站街","四唯街","永清街","球场街","西马街","台北街","劳动街","花桥街","后湖街","谌家矶街"], "硚口区":["易家墩街道","韩家墩街道","宗关街道","汉水桥街道","宝丰街道","荣华街道","崇仁街道","汉中街道"], "武昌区":["积玉桥街道","杨园街道","徐家棚街道","新河街道"] },"荆州市":{"沙市区":["黄石港","崇文街道","解放路街道"],"荆州区":["城南街道","西城街道","东城街道","马山镇","川店镇"],"松滋市":["新江口镇","南海镇","八宝镇","陈店镇"],"公安县":["斗湖堤镇","埠河镇","杨家厂镇","斑竹垱镇"],"监利县":["容城镇","白螺镇","朱河镇"] },"孝感市":{"孝南区":["肖港镇","书院街道","车站街道","新华街道"],"应城市":["城中街道","城北街道","杨河镇","三合镇"],"安陆市":["李店镇","巡店镇","雷公镇","陈店乡"], }, }# print(Hbei_map["孝感市"]["应城市"])shiqu_dir = {} xian_dir ={} jiedao_dir = {}def jiance(name):if len(name) == 0: sys.exit("\033[31;1m选择不能为空,清重新输入~~\033[0m")elif shiqu == "quit" or shiqu == "exit": sys.exit("\033[31;1m 退出程序,三级菜单退出~~ \033[0m")else:return Trueprint("==============================================================================================================")print("湖北省下面的市区如下: ")for number,key in enumerate(Hbei_map.keys()):print(str(number+1) + ": " + str(key)) shiqu_dir[number+1] = key chose = [] shiqu_list = [x+1 for x in range(len(shiqu_dir.keys()))]while True:print("==========================================================================================================") shiqu = input("请输入您要查询的市区所对应的序列号,输入exit或者quit自动会退出.:") jiance(shiqu)if int(shiqu) not in shiqu_dir.keys():print("您输入了非法的序列,请输入一下序列 {}".format(shiqu_list))else:for keys,vlaue in shiqu_dir.items():if int(shiqu) == keys: chose = [] chose.append(vlaue)print("================================================================================================")print("该市区下面的县级市或者片区域,县城列表如下:")for number,keys_xian in enumerate(Hbei_map[vlaue].keys()):print(str(number+1)+ ":" + str(keys_xian)) xian_dir[number+1] = keys_xianwhile True:print("=============================================================================================") xian = input("请输入要查询的县城所对应的序列号,quit/exit退出: ") jiance(xian) xian_list = [x+1 for x in range(len(xian_dir.keys()))]if int(xian) not in xian_dir.keys(): print("您输入了非法的序列,请输入一下序列 {}".format(xian_list))else:for k,v in xian_dir.items():if int(xian) == k: chose.append(v) jiedao_li = Hbei_map[chose[0]][chose[1]]for k,v in enumerate(jiedao_li):print(str(k+1) + ": " + str(v)) jiedao_dir[k+1] = vwhile True:print("=====================================================================================") jiedao = input("请输入街道所对应的序列号 退出请输入quit/exit: ") jiance(jiedao) jiedao_list = [x+1 for x in range(len(jiedao_dir.keys()))]if int(jiedao) not in jiedao_dir.keys():print("您输入了非法的序列,请输入一下序列 {}".format(jiedao_list))else:for k,v in jiedao_dir.items():if int(jiedao) == k: chose.append(v)print("=================================================================================")print("\033[35;1m你选择的市:%s 县城是:%s 街道是:%s\033[0m"%(chose[0],chose[1],chose[2]))print("===================================================================================")breakbreakbreak
以上是python编写一个三级while的循环菜单实例的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

PHP和Python各有优劣,选择取决于项目需求和个人偏好。1.PHP适合快速开发和维护大型Web应用。2.Python在数据科学和机器学习领域占据主导地位。

Python和JavaScript在社区、库和资源方面的对比各有优劣。1)Python社区友好,适合初学者,但前端开发资源不如JavaScript丰富。2)Python在数据科学和机器学习库方面强大,JavaScript则在前端开发库和框架上更胜一筹。3)两者的学习资源都丰富,但Python适合从官方文档开始,JavaScript则以MDNWebDocs为佳。选择应基于项目需求和个人兴趣。

Docker利用Linux内核特性,提供高效、隔离的应用运行环境。其工作原理如下:1. 镜像作为只读模板,包含运行应用所需的一切;2. 联合文件系统(UnionFS)层叠多个文件系统,只存储差异部分,节省空间并加快速度;3. 守护进程管理镜像和容器,客户端用于交互;4. Namespaces和cgroups实现容器隔离和资源限制;5. 多种网络模式支持容器互联。理解这些核心概念,才能更好地利用Docker。

在 VS Code 中,可以通过以下步骤在终端运行程序:准备代码和打开集成终端确保代码目录与终端工作目录一致根据编程语言选择运行命令(如 Python 的 python your_file_name.py)检查是否成功运行并解决错误利用调试器提升调试效率

Python在自动化、脚本编写和任务管理中表现出色。1)自动化:通过标准库如os、shutil实现文件备份。2)脚本编写:使用psutil库监控系统资源。3)任务管理:利用schedule库调度任务。Python的易用性和丰富库支持使其在这些领域中成为首选工具。

VS Code 扩展存在恶意风险,例如隐藏恶意代码、利用漏洞、伪装成合法扩展。识别恶意扩展的方法包括:检查发布者、阅读评论、检查代码、谨慎安装。安全措施还包括:安全意识、良好习惯、定期更新和杀毒软件。

CentOS 安装 Nginx 需要遵循以下步骤:安装依赖包,如开发工具、pcre-devel 和 openssl-devel。下载 Nginx 源码包,解压后编译安装,并指定安装路径为 /usr/local/nginx。创建 Nginx 用户和用户组,并设置权限。修改配置文件 nginx.conf,配置监听端口和域名/IP 地址。启动 Nginx 服务。需要注意常见的错误,如依赖问题、端口冲突和配置文件错误。性能优化需要根据具体情况调整,如开启缓存和调整 worker 进程数量。

VS Code 全称 Visual Studio Code,是一个由微软开发的免费开源跨平台代码编辑器和开发环境。它支持广泛的编程语言,提供语法高亮、代码自动补全、代码片段和智能提示等功能以提高开发效率。通过丰富的扩展生态系统,用户可以针对特定需求和语言添加扩展程序,例如调试器、代码格式化工具和 Git 集成。VS Code 还包含直观的调试器,有助于快速查找和解决代码中的 bug。
