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

需求:

  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. Html<img>标签特写 2017-03-10 AM

    1.插入图片 <img src="picture1.gif" width="300" height="100" title=" ...

  2. Convert Sorted Array to Binary Search Tree & Convert Sorted List to Binary Search Tree

    Given an array where elements are sorted in ascending order, convert it to a height balanced BST. Su ...

  3. Leetcode_001_TwoSum_求和为固定数的两个数的索引

    题目描述    给定一个整型数组,在数组中找出两个数使这两个数的和为给定数,从小到大输出这两个数在数组中的位置(我们可以假定输出结果只有一个).例如,输入:N={1,4,8,20}, target=1 ...

  4. Python模块的动态加载机制

    Python在运行环境初始化中,就将sys module加载到了内存中, 实际上,Python是将一大批的module加载到了内存中.但是为了使local名字空间能够达到最干净的效果,Python并没 ...

  5. Django中使用CKEditor代码高亮显示插件Code Snippet

    Django使用CKEditor可以安装django-ckeditor这个模块,具体步骤可按照这里进行:http://www.nanerbang.com/article/2/ 我在富文本编辑器中想使用 ...

  6. 【SF】开源的.NET CORE 基础管理系统 -介绍篇

    [SF]开源的.NET CORE 基础管理系统 -系列导航 1.环境: .NET Core SDK (https://www.microsoft.com/net/core) SQL Server or ...

  7. 在x64位的操作系统客户端如何连接oracle ?

    好久没更新博客了,上周在x64位的操作系统中安装好了32位或64位的oracle 11g客户端,但用SSIS或Microsoft SQL Server 2012报表生成器3.0去连接oracle 11 ...

  8. iOS开发之自定义UITableView的cell

    系统默认的UITableViewCell的每行都有横线(分隔符),就算没有数据也是如此,有时候我们想只在有数据的地方有下划线,可以去除下划线,然后在awarkFromNid方法中使用addsubvie ...

  9. ubuntu-terminal快捷键

    常用快捷键功能:Tab 自动补全 Ctrl+a 光标移动到开始位置 Ctrl+e 光标移动到最末尾 Ctrl+k 删除此处至末尾的所有内容 Ctrl+u 删除此处至开始的所有内容 Ctrl+d 删除当 ...

  10. JSP九大内置对象的作用和用法总结(转)

    SP中一共预先定义了9个这样的对象,分别为:request.response.session.application.out.pagecontext.config.page.exception 1.r ...