我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python3 实现一个多级菜单小功能

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python3 实现一个多级菜单小功能

记录下一下

  1 #!/usr/bin/env python3
  2 '''
  3 需求:三级菜单
  4 三级菜单,依次进入子菜单
  5 '''
  6 City = {
  7     '北京':{
  8         '大兴区':[
  9             '亦庄','黄村','中信新城','B返回','Q退出'
 10         ],
 11         '丰台区':[
 12             '岳各庄','五棵松','丰台路口','B返回','Q退出'
 13         ],
 14         '朝阳区':[
 15             '劲松','双井','国贸','B返回','Q退出'
 16         ],
 17         'B返回':'返回',
 18         'Q退出':'退出'
 19     },
 20     '上海':{
 21         '浦东区':[
 22             '世纪大道','陆家嘴','盛世年华','B返回','Q退出'
 23         ],
 24         '普陀区':[
 25             '东方汽配城','金沙社区','东锦国际大厦','B返回','Q退出'
 26         ],
 27         '徐汇区':[
 28             '上海应用技术大学','上海长途客运南站','上海东方体育中心','B返回','Q退出'
 29         ],
 30         'B返回': '返回',
 31         'Q退出': '退出'
 32     },
 33     '广州':{
 34         '天河区':[
 35             '珠江公园','天河体育场','广东师范大学','B返回','Q退出'
 36         ],
 37         '白云区':[
 38             '广州体育馆','白云文化广场','广州百信广场','B返回','Q退出'
 39         ],
 40         '海珠区':[
 41             '中山大学','城市职业学院','南方医科大学','B返回','Q退出'
 42         ],
 43         'B返回': '返回',
 44         'Q退出': '退出'
 45     }
 46 }
 47 
 48 # print(City)
 49 
 50 Choice_of_city = list(City.keys())#字典转换为列表
 51 # print(City.keys())
 52 # print(City.values())
 53 #打印字典使用format函数格式化
 54 # print('{0[0]} {0[1]} {0[2]}'.format(Choice_of_city))
 55 
 56 def menu():#使用函数def
 57     while True:#只要为真就无限循环
 58         print('{0[0]} {0[1]} {0[2]}'.format(Choice_of_city))#将列表Choice_of_city以函数format格式化打印
 59         User_input_City = input('请选择城市:').strip()#用户输入,次数strip为移除空白
 60         if User_input_City in Choice_of_city:#判断用户输入的信息是否在列表User_input_City中
 61             District = list(City[User_input_City])#获取用户输入信息并根据用户输入信息取出字典City的values,
 62             # 此处用户输入信息User_input_City相当于字典City的keys,并且把获取的values转换为列表District
 63             while True:#只要为真就无限循环
 64                 # if User_input_City in Choice_of_city:
 65                 print('{0[0]} {0[1]} {0[2]} {0[3]} {0[4]}'.format(District))#将列表District以函数format格式化打印
 66                 User_input_District = input('请选择区县:').strip()#用户输入
 67                 if User_input_District not in District:#判断用户输入不在于列表District中
 68                     print('输入错误,请重新输入!!')
 69                     continue#退出当前循环继续下一次循环
 70                 if User_input_District in District:#判断用户输入是否在列表District中
 71                     if User_input_District == District[3]:#判断用户输入是否等于District中第4个元素
 72                         break#跳出当前循环
 73                     elif User_input_District == District[4]:#判断用户输入是否等于District中第4个元素
 74                         return#退出整个函数,这里用来退出所有循环
 75                     else:
 76                         while True:
 77                             Township = (City[User_input_City][User_input_District])
 78                             print('{0[0]} {0[1]} {0[2]} {0[3]} {0[4]}'.format(Township))
 79                             User_input_township = input('选择乡镇:').strip()
 80                             if User_input_township not in Township:
 81                                 print('输入错误,请重新输入!!')
 82                                 continue
 83                             if User_input_township in Township:
 84                                 if User_input_township == Township[3]:
 85                                     break
 86                                 if User_input_township == Township[4]:
 87                                     return
 88                                 else:
 89                                     print('Bingo!!!')
 90                                     return
 91                             else:
 92                                 continue
 93                 else:
 94                     break
 95             else:
 96                 continue
 97         else:
 98             print('输入错误,请重新输入!!')
 99             continue
100         # else:
101         #         continue
102     # else:
103     #     print('输入不正确,请重新输入!!')
104 menu()

 另外在写了一个版本:

  1 #!/usr/bin/env python3
  2 City = {
  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 dic_city = {}
 44 dic_district = {}
 45 dic_address = {}
 46 def menu():
 47     while True:
 48         for i in enumerate(City, 1):                        #循环字典City,并在keys前加序号
 49             print(i[0], i[1])                               #循环打印序号+City的keys
 50             dic_city[str(i[0])] = i[1]                      #将打印的序号和字典City的keys循环加入新的字典dic_city中,此处str将序号转换为字符串,方便后面判断
 51         user_input = input('选择前往城市编号:').strip()         #用户输入,strip去掉两侧空格
 52         # print(dic_city)
 53         if len(user_input) == 0:                                #计算用户输入长度是否为0,判断输入是不是空值
 54             print('输入不能为空,请重新输入!')
 55             continue                                            #退出本次循环
 56         elif user_input in dic_city:                            #判断用户输入是否在字典dic_city中
 57             while True:
 58                 for i in enumerate((City[dic_city[user_input]]),1):#循环中添加序号
 59                     print(i[0],i[1])
 60                     dic_district[str(i[0])] = i[1]
 61                 district = input('区县选择或退出返回(请填写序号即可):').strip()
 62                 if len(district) == 0:                              #计算用户输入长度是否为0,判断输入是不是空值
 63                     print('输入不能为空,请重新输入!')
 64                     continue
 65                 elif district == list(dic_district)[-2]:            #判断用户输入是否等于倒数第二个元素,即:返回
 66                     break
 67                 elif district == list(dic_district)[-1]:            #判断用户输入是否等于最后一个元素,即:退出
 68                     return                                          #退出整个函数,这里用来退出多层循环
 69                 elif district not in dic_district:                  #判断用户输入不在字典dic_district中
 70                     print('输入不正确,请重新输入!')
 71                     continue
 72                 else:
 73                     while True:
 74                         for i in enumerate((City[dic_city[user_input]][dic_district[district]]),1):#多层字典,最外层字典City,
 75                             # [dic_city[user_input]新字典中取到City的keys,这样取到第二层字典;dic_district[district]新字典中取到
 76                             # 第二层字典的keys,City[dic_city[user_input]][dic_district[district]]整个是第二层字典加keys,最后取
 77                             # 出第三层
 78                             print(i[0],i[1])
 79                             dic_address[str(i[0])] = i[1]
 80                         address = input('选择地址或者返回退出(请填写序号即可):').strip()
 81                         if len(address) == 0:
 82                             print('输入不能为空,请重新输入!')
 83                             continue
 84                         elif address == list(dic_address)[-2]:
 85                             break
 86                         elif address == list(dic_address)[-1]:
 87                             return
 88                         elif address not in dic_address:
 89                             print('输入不正确,请重新输入!')
 90                             continue
 91                         else:
 92                             addr = '''
 93                             您选择的地址为:%s%s%s                                      
 94                             '''%(dic_city[user_input],dic_district[district],dic_address[address])#段落输出格式,%s代替字符串
 95                             print(addr.strip())
 96                             return
 97                     continue
 98                 break
 99             continue
100         else:
101             print('输入不正确,请重新输入!')
102             continue
103 menu()

 

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python3 实现一个多级菜单小功能

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python3 实现一个多级菜单小功能

记录下一下 1 #!/usr/bin/env python3 2 ''' 3 需求:三级菜单 4 三级菜单,依次进入子菜单 5 ''' 6 City = { 7 '北京':{ 8 '大兴区':[ 9
2023-01-30

实现一个三级菜单小功能

记录下一下 1 #!/usr/bin/env python3 2 ''' 3 需求:三级菜单 4 三级菜单,依次进入子菜单 5 ''' 6 City = { 7 '北京':{ 8 '大兴区':[ 9
2023-01-30

如何使用Java实现一个简易版的多级菜单功能

小编给大家分享一下如何使用Java实现一个简易版的多级菜单功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!正文1,首先是数据库的设计DROP TABLE IF
2023-06-26

WordPress 3.0+菜单功能支持二级和N级菜单实现步骤

自带的导航菜单功能是 WordPress 3.0+ 中唯一执得让人眼睛一亮的功能了,在新做主题的过程中再一次让我眼睛亮了一亮,发现这个 WordPress 的导航菜单居然还支持二级和N级菜单。 当然要实现下拉的二级菜单功能,还是需要 jqu
2022-06-12

Android仿美团淘宝实现多级下拉列表菜单功能

我们在常用的电商或者旅游APP中,例如美团,手机淘宝等等,都能够看的到有那种下拉式的二级列表菜单。具体如图所示: 上面两张图就是美团的一个二级列表菜单的一个展示。我相信很多人都想开发一个跟它一样的功能放到自己的APP中。好,接下来我们就开始
2022-06-06

怎么在HTML5中实现一个输入框下拉菜单功能

本篇文章为大家展示了怎么在HTML5中实现一个输入框下拉菜单功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.单选框代码性别:
2023-06-09

怎么在小程序中自定义一个多层级单选和多选功能

这篇文章给大家介绍怎么在小程序中自定义一个多层级单选和多选功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。wxml 2023-06-14

使用Ajax怎么实现一个二级联动菜单

本篇文章为大家展示了使用Ajax怎么实现一个二级联动菜单,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。index.jsp<%@ page language="java" pageEncoding="
2023-06-08

如何在Android应用中利用DrawerLayout实现一个侧拉菜单栏功能

如何在Android应用中利用DrawerLayout实现一个侧拉菜单栏功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。activity_main.xml
2023-05-31

如何在Android中实现一个动画效果的自定义下拉菜单功能

如何在Android中实现一个动画效果的自定义下拉菜单功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。要实现的功能及思路如下:下拉菜单样式是自定义的、非原生效果:需要使用
2023-06-06

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录