优化的思路是使用单层循环嵌套完成三级菜单,这个优化思路我非常喜欢,我喜欢在编程的时候用最少的东西写出同样的效果,通常这样会绕来绕去,但非常有趣!!!

需求:

  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 三级菜单与优化(一层循环嵌套)的更多相关文章

  1. python(5)- 简单练习:python三级菜单优化

    python三级菜单优化,菜鸟版链接:http://www.cnblogs.com/xuyaping/p/6648170.html menu = { '北京':{ '海淀':{ '五道口':{ 'so ...

  2. python三级菜单实例(傻瓜版和进阶版)

    程序: python三级菜单 要求: : 1.打印省.市.县三级菜单 2.可返回上一级 3.可随时退出程序 方案一:傻瓜版(其实傻瓜版考察的主要是思路!思路清楚了,那才不是傻瓜!O(∩_∩)O哈哈~) ...

  3. python 三级菜单 while循环三次,湖北省市-县-街道的选择,3个while的循环 -day2

    python编写一个三级while的循环菜单 1.定义字典,字典里面嵌套字典,内嵌字典的值为列表. 思路: 湖北省的市:字典中的定义3个字典,用于存储{序列-键:市名} shiqu_dir = {} ...

  4. python 三级菜单

    三级列表: menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{}, '网易':{}, 'google':{} }, '中关村':{ '爱奇艺':{}, '汽车之家':{}, ...

  5. python三级菜单的实现

    一.作业要求 1.使用字典实现三级菜单功能 2.直接输入前面数字进入下一级菜单 3.按B返回上一级,按Q退出 二.需要知识点 1.if循环 2.for循环,enumerate的用法 3.while循环 ...

  6. Python 三级菜单 增强版

    需要实现的功能是:三级菜单1.从文本内读出选项2.查询每一级的选项,并能对选项进行增/删/改功能3.每一级可以退出程序或者返回上一层 2018-5-14 更新内容 思路 实现过程中的BUG及解决方案: ...

  7. 4th,Python三级菜单

    1. 运行程序输出第一级菜单 2. 选择一级菜单某项,输出二级菜单,同理输出三级菜单 3. 菜单数据保存在文件中 4. 让用户选择是否要退出 5. 有返回上一级菜单的功能 data = { '北京': ...

  8. python三级菜单

    #-*- coding:utf-8 -*-#Author:gxli #一级菜单项def menu(): #遍历字典dic一级菜单 print('-----------一级菜单------------- ...

  9. Python——三级菜单

    #三级菜单函数 menu = { '北京':{ 海淀:{ '五道口':{} '中关村':{} '上帝':{} } '昌平':{} '朝阳':{} '东城':{} }, '上海':{} '山东':{} ...

随机推荐

  1. 使用D3 Geo模块画澳大利亚地图

    数据 数据可视化主要旨在借助于图形化手段,清晰有效地传达与沟通信息.因此做数据可视化前需要想明白2件事: 你有什么数据? 你要传达什么信息? 本文中的示例中,将以不同的颜色显示澳大利亚不同地区的客户数 ...

  2. 图解Javascript——变量对象和活动对象

    span { line-height: 1.5 } 这是由一段代码引发的思考: var laterDeclaredVar = 'I am a global variable ...'; (functi ...

  3. JAVA发送邮件的DEMO

    最近有朋友问邮件怎么发送,就简单写了个demo,因为懒得找jar包,所以项目是创建的maven工程,具体的maven引用的jar如下: <dependency> <groupId&g ...

  4. Linux+Nginx+Asp.net Core部署

    上篇<Docker基础入门及示例>文章介绍了Docker部署,以及相关.net core 的打包示例.这篇文章我将以oss.offical.site站点为例,主要介绍下在linux机器下完 ...

  5. Apache网页的缓存时间

    配置网页缓存时间概述 通过mod_expires模块配置Apache,使网页能在客户端浏览器缓存一段时间,以避免重复请求,减轻服务端工作压力. 启用mod_expires模块后,会自动生成页面头部信息 ...

  6. HTML 部分常用属性、组成属性|...超链接、路径、锚点、列表、滚动、URL编码、表格、表单、GET和POST

    URL地址 就是我们所说的网址:www.jd.com 浏览器内核,渲染引擎 Ie内核:triteent 谷歌/欧鹏:blink 火狐:gecko 苹果:webkit 渲染引擎是出现兼容性的根本问题 - ...

  7. mac压缩文件乱码

    http://blog.b3inside.com/apple/solve-file-name-garbled-with-betterzip/

  8. java的特点跨平台原理以及JDK的安装

    终于开始了期待已久的java,了解java首先要了解下计算机语言的发展历史 机器语言--->汇编语言--->--->高级语言(面向过程的语言和面向对象的语言) 机器语言 每一个计算机 ...

  9. placeholder的字体样式改变,滚动条的颜色改变,ios日期兼容

    placeholder:::-webkit-input-placeholder { color: rgba(153, 153, 153, 0.541);font-size:12px;}:-moz-pl ...

  10. datatables,表格

    官方文档:https://datatables.net/ var dttblTaskOrderOptions={ order: [5, 'desc'], ajax:{ url:"order/ ...