Python学习笔记-day1
学习Python的第一天时有一个“Python三级菜单”的作业,为了完成这个作业个人遇到一些问题,随笔记录。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | # -*- coding:utf-8 -*-<br># Autor: Li Rong Yang<br># 所有操作使用此字典完成<br>zone = { '山东' : { '青岛' : [ '四方' , '黄岛' , '崂山' , '李沧' , '城阳' ], '济南' : [ '历城' , '槐荫' , '高新' , '长青' , '章丘' ], '烟台' : [ '龙口' , '莱山' , '牟平' , '蓬莱' , '招远' ] }, '江苏' : { '苏州' : [ '沧浪' , '相城' , '平江' , '吴中' , '昆山' ], '南京' : [ '白下' , '秦淮' , '浦口' , '栖霞' , '江宁' ], '无锡' : [ '崇安' , '南长' , '北塘' , '锡山' , '江阴' ] }, '浙江' : { '杭州' : [ '西湖' , '江干' , '下城' , '上城' , '滨江' ], '宁波' : [ '海曙' , '江东' , '江北' , '镇海' , '余姚' ], '温州' : [ '鹿城' , '龙湾' , '乐清' , '瑞安' , '永嘉' ] }, '安徽' : { '合肥' : [ '蜀山' , '庐阳' , '包河' , '经开' , '新站' ], '芜湖' : [ '镜湖' , '鸠江' , '无为' , '三山' , '南陵' ], '蚌埠' : [ '蚌山' , '龙子湖' , '淮上' , '怀远' , '固镇' ] }, '广东' : { '深圳' : [ '罗湖' , '福田' , '南山' , '宝安' , '布吉' ], '广州' : [ '天河' , '珠海' , '越秀' , '白云' , '黄埔' ], '东莞' : [ '莞城' , '长安' , '虎门' , '万江' , '大朗' ] } } |
以上字典分为三级分别是“省”、“市”、“县”
打印一级菜单“省”
1 | print (zone.keys()) |
运行结果如下,打印后显示了所有的省级城市
但是这看起来并不好看且无法用于循环,所以我们把它转换为list类型
1 2 | city_id = list (zone.keys()) print (city_id) |
运行结果如下
根据一级菜单打印二级菜单
1 | print (zone[ '山东' ]) |
运行结果如下
根据以上信息显示,明显不光我们需要的二级菜单还有三级菜单“县”,所以要使用.keys()函数
1 2 3 | print (zone[ '山东' ].keys()) City_Shi = list (zone[ '山东' ].keys()) print (City_Shi) |
运行结果如下
打印三级菜单
1 | print (zone[ '山东' ][ '青岛' ]) |
运行结果如下
到此列表的一、二、三级打印方法就完了,在使用简单的while循环和if判断最终“Python三级菜单”代码如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | ################################################ # Task Name: 三级菜单 # # Description:打印省、市、县三级菜单 # # 可随时返回上一级 # # 可随时退出程序 # #----------------------------------------------# # Author:Li Rong Yang # ################################################ zone = { '山东' : { '青岛' : [ '四方' , '黄岛' , '崂山' , '李沧' , '城阳' ], '济南' : [ '历城' , '槐荫' , '高新' , '长青' , '章丘' ], '烟台' : [ '龙口' , '莱山' , '牟平' , '蓬莱' , '招远' ] }, '江苏' : { '苏州' : [ '沧浪' , '相城' , '平江' , '吴中' , '昆山' ], '南京' : [ '白下' , '秦淮' , '浦口' , '栖霞' , '江宁' ], '无锡' : [ '崇安' , '南长' , '北塘' , '锡山' , '江阴' ] }, '浙江' : { '杭州' : [ '西湖' , '江干' , '下城' , '上城' , '滨江' ], '宁波' : [ '海曙' , '江东' , '江北' , '镇海' , '余姚' ], '温州' : [ '鹿城' , '龙湾' , '乐清' , '瑞安' , '永嘉' ] }, '安徽' : { '合肥' : [ '蜀山' , '庐阳' , '包河' , '经开' , '新站' ], '芜湖' : [ '镜湖' , '鸠江' , '无为' , '三山' , '南陵' ], '蚌埠' : [ '蚌山' , '龙子湖' , '淮上' , '怀远' , '固镇' ] }, '广东' : { '深圳' : [ '罗湖' , '福田' , '南山' , '宝安' , '布吉' ], '广州' : [ '天河' , '珠海' , '越秀' , '白云' , '黄埔' ], '东莞' : [ '莞城' , '长安' , '虎门' , '万江' , '大朗' ] } } while True : for i in zone: print (i) while True : City_Shi = input ( "请输入要查看的省级城市,(q)退出(b)返回上一层:" ) if City_Shi in zone: for Shi in zone[City_Shi]: print (Shi) while True : City_Xian = input ( "请输入要查看的市级城市,(q)退出(b)返回上一层:" ) if City_Xian in zone[City_Shi]: for Xian in zone[City_Shi][City_Xian]: print (Xian) user_select = input ( "输入(q)退出(b)返回上一层:" ) if user_select = = 'q' : exit() elif user_select = = 'b' : break elif user_select ! = 'q' and user_select ! = 'b' : print ( "输入有误请重新输入:" ) if City_Xian = = 'q' : exit() elif City_Xian = = 'b' : break elif City_Shi = = "q" : print ( "程序已退出" .center( 50 , '-' )) exit() elif City_Shi = = 'b' : break |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)