Python 三级菜单与优化(一层循环嵌套)
优化的思路是使用单层循环嵌套完成三级菜单,这个优化思路我非常喜欢,我喜欢在编程的时候用最少的东西写出同样的效果,通常这样会绕来绕去,但非常有趣!!!
需求:
1、运行程序输出第一级菜单;
2、选择一级菜单某项,输出二级菜单,同理输出三级菜单;
3、让用户选择是否要退出;
4、有返回上一级菜单的功能;
多层循环嵌套:
data = {
'A':{
"Aa":['Aa1','Aa2','Aa3'],
"Ab":['Ab1','Ab2','Ab3'],
"Ac":['Ac1','Ac2','Ac3']
},
'B':{
"Ba":['Ba1','Ba2','Ba3'],
"Bb":['Bb1','Bb2','Bb3'],
"Bc":['Bc1','Bc2','Bc3']
},
'C':{
"Ca":['Ca1','Ca2','Ca3'],
"Cb":['Cb1','Cb2','Cb3'],
"Cc":['Cc1','Cc2','Cc3']
}
}
jump = True #跳出循环直至退出程序
print("特别提醒:选‘q’退出;选‘b’返回上一级菜单!!")
while jump == True:
for i in data:
print(i)
choice = input("请选择进入:")
if choice in data:
while jump == True:
for i1 in data[choice]:
print(i1)
choice1 = input("请选择进入:")
if choice1 in data[choice]:
while jump == True:
for i2 in data[choice][choice1]:
print(i2)
choice2 = input("请选择退出或返回上一菜单:")
if choice2 == 'q':
jump = False
elif choice2 == 'b':
break
else:
print("选择错误请重新选择:")
elif choice1 == 'q':
jump = False
elif choice1 == 'b':
break
else:
print("选择错误请重新选择:")
elif choice == "q":
jump = False
else:
print("选择错误请重新选择:")
print ("退出程序...")
三级菜单
单层循环嵌套:
data = {
'A':{
"Aa":['Aa1','Aa2','Aa3'],
"Ab":['Ab1','Ab2','Ab3'],
"Ac":['Ac1','Ac2','Ac3']
},
'B':{
"Ba":['Ba1','Ba2','Ba3'],
"Bb":['Bb1','Bb2','Bb3'],
"Bc":['Bc1','Bc2','Bc3']
},
'C':{
"Ca":['Ca1','Ca2','Ca3'],
"Cb":['Cb1','Cb2','Cb3'],
"Cc":['Cc1','Cc2','Cc3']
}
}
list_menu = []
flag = True
while flag:
if len(list_menu) == 0:
info = data
else:
info = list_menu[-1]
for i in info:
print (i)
choice = input("请选择进入:").strip()
if choice == 'q':
break
if choice == 'b':
if len(list_menu) == 0:
print("已经是最高级菜单!!")
continue
list_menu.pop()
continue
if len(list_menu) == 0:
list_menu.append(info[choice])
continue
list_menu.append(list_menu[-1][choice])
print("退出程序...")
三级菜单
Python 三级菜单与优化(一层循环嵌套)的更多相关文章
- python(5)- 简单练习:python三级菜单优化
python三级菜单优化,菜鸟版链接:http://www.cnblogs.com/xuyaping/p/6648170.html menu = { '北京':{ '海淀':{ '五道口':{ 'so ...
- python三级菜单实例(傻瓜版和进阶版)
程序: python三级菜单 要求: : 1.打印省.市.县三级菜单 2.可返回上一级 3.可随时退出程序 方案一:傻瓜版(其实傻瓜版考察的主要是思路!思路清楚了,那才不是傻瓜!O(∩_∩)O哈哈~) ...
- python 三级菜单 while循环三次,湖北省市-县-街道的选择,3个while的循环 -day2
python编写一个三级while的循环菜单 1.定义字典,字典里面嵌套字典,内嵌字典的值为列表. 思路: 湖北省的市:字典中的定义3个字典,用于存储{序列-键:市名} shiqu_dir = {} ...
- python 三级菜单
三级列表: menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{}, '网易':{}, 'google':{} }, '中关村':{ '爱奇艺':{}, '汽车之家':{}, ...
- python三级菜单的实现
一.作业要求 1.使用字典实现三级菜单功能 2.直接输入前面数字进入下一级菜单 3.按B返回上一级,按Q退出 二.需要知识点 1.if循环 2.for循环,enumerate的用法 3.while循环 ...
- Python 三级菜单 增强版
需要实现的功能是:三级菜单1.从文本内读出选项2.查询每一级的选项,并能对选项进行增/删/改功能3.每一级可以退出程序或者返回上一层 2018-5-14 更新内容 思路 实现过程中的BUG及解决方案: ...
- 4th,Python三级菜单
1. 运行程序输出第一级菜单 2. 选择一级菜单某项,输出二级菜单,同理输出三级菜单 3. 菜单数据保存在文件中 4. 让用户选择是否要退出 5. 有返回上一级菜单的功能 data = { '北京': ...
- python三级菜单
#-*- coding:utf-8 -*-#Author:gxli #一级菜单项def menu(): #遍历字典dic一级菜单 print('-----------一级菜单------------- ...
- Python——三级菜单
#三级菜单函数 menu = { '北京':{ 海淀:{ '五道口':{} '中关村':{} '上帝':{} } '昌平':{} '朝阳':{} '东城':{} }, '上海':{} '山东':{} ...
随机推荐
- Cookie和Session的原理图
Cookie Session
- Mditor 发布「桌面版」了 - http://mditor.com
简单说明 Mditor 最早只有「组件版」,随着「桌面版」的发布,Mditor 目前有两个版本: 可嵌入到任意 Web 应用的 Embed 版本,这是一桌面版的基础,Repo: https://git ...
- Visual Studio 2017 通过SSH 调试Linux 上.NET Core
Visual Studio 2017 通过SSH 调试Linux 上.NET Core 应用程序. 本文环境 开发环境:Win10 x64 Visual Studio 2017 部署环境:Ubuntu ...
- 剑指offer:重建二叉树
重建二叉树的前置知识: 0.遍历二叉树: (1)前序遍历:根左右 --> 先访问根节点,再前序遍历左子树,最后前序遍历右子树: (2)中序遍历:左根右 --> 先中序遍历左子树,再访问根节 ...
- nao安装中文包教程
本文介绍nao离线安装中文包 相官方索取 .demo 文件夹,里面包含很多的例程和中文包 下载winscp和putty(或者xshell),下载过程和安装我就不多说了,免费 把nao开机,连接路由器等 ...
- mybatis基础学习4-插件生成器
1:安装 2:在所建项目单击右键输入mybatis如下图 *建项目文件时不用建包和类,在配置文件里写即可生成 3:之后在项目生成 自己建的表(这个必须) 单击右键 即可 --------------- ...
- MVC不用302跳转Action,内部跳转
原理,在一个Action里面return 另一个Action出去. public class HomeController : Controller { // GET: Home public Act ...
- Struts2之标签使用
上一篇我们一起探讨了Struts2中的OGNL表达式的知识,本篇我们一起来学习一下关于Struts2标签的使用,包括:基础标签:property.set.bean.include:判断标签:if el ...
- eclipse 中 Servlet 模板代码(其实是代码提示模板)
说的是模板代码,应该说的是提示的模板代码,并不是一新建就会出现模板. 第一步:先建一个Servlet文件,写好自己想要的模板 我的模板如下: 全选并复制,等会要粘贴到Servlet的提示模板中. pa ...
- Map集合概述和特点
A:Map集合概述和特点(Set底层依赖的是Map) 将键映射到值的对象 一个映射不能包含重复的键 每个键最多只能映射到一个值 B:Map接口和Collection接口的不同 Map是双列的(是双列集 ...