menu = {
'北京':{
'海淀':{
'五道口':{
'soho':{},
'网易':{},
'谷歌':{}
},
'中关村':{
'爱奇艺':{},
'汽车之家':{},
'youku':{},
},
'上地':{
'百度':{},
'联想':{},
'H3C':{},
},
},
'昌平':{
'沙河':{
'老男孩':{},
'阿泰包子':{},
' 北航':{},
},
'天通苑':{
'圆通快递':{},
'三合贸易':{},
},
'回龙观':{
'腾讯众创':{},
'盈创动力':{},
'三一重机':{},
},
},
'朝阳':{
'太阳宫':{},
'小红门':{},
'十八里店':{},
},
'东城':{
'安定门':{},
'建国门':{},
'东直门':{},
},
},
'上海':{
'闵行':{
"人民广场":{
'炸鸡店':{}
}
},
'闸北':{
'火车战':{
'携程':{}
}
},
'浦东':{
'东方明珠':{
'黄浦江':{}
}
},
},
'山东':{
'济南':{'红叶谷':{}
},
'青岛':{'啤酒博物馆':{}
},
'泰安':{'泰山':{}
},
},
}
current_level = menu
last_level =[]
while True:
for key in current_level:
print(key)
choice = input(">>:").strip()
if len(choice) == 0:
continue
if choice =="b":
if len(last_level)==0:
break
current_level =last_level[-1]
last_level.pop()
elif choice =="q":
print("程序已退出!")
break
elif choice not in current_level:
continue
else:
last_level.append(current_level)
current_level = current_level[choice]#进入下一层

解释:

1.定义一个字典,menu;
2.定义一个变量current_level,用来加载当前层,第一次赋值menu;
3.定义一个列表last_level,用来加载上一层,第一次可以用空;
4.用一个while循环,条件为真
5,用for循环表示可以一层一层的无限的显示字典的内容;for循环,循环每一层。

6.进入下一层:
current_level =current_level[choice]
并且,每进入一层,就存当前层:
last_level.append(current_levle)

7.每退出一层,取列表最后一个值,然后再删除列表最后一个值。

8.判断:如果输入是回车,就继续输入

9.判断,如果,列表为空,那么直接退出

10.每次返回上一次,上一层就是last_level的最后一个值,然后列表last_level都要删除最后一个元素
11.判断:如果输入的是q,直接退出,不考虑层数

流控图:

Day2课后作业:三级菜单简单版的更多相关文章

  1. Day2课后作业:购物车简单版

    PRODUCT_LIST = [ ['iphone7',6500], ['macbook',12000], ['pythonbook',66], ['bike',999], ['coffee',31] ...

  2. Python学习-------------------三级菜单简单版

    题目: 多级菜单         1.三级菜单         2.可依次选择进入的各子菜单         3.所需新知识点:列表.字典 ReadMe: 这个做循环,比较绕脑子 点开运行即可 Min ...

  3. day1作业--三级菜单

    作业概述: 写一个三级菜单 实现如下功能: (1)可依次选择进入各子菜单 (2)在每一级按“b”都可以返回上一级,按“q"都可以退出 流程图: readme: 简介: three_menu. ...

  4. python作业三级菜单day1(第一周)

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

  5. Python 三级菜单 增强版

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

  6. python3 三级菜单-基础版

    # -*- coding:utf-8 -*- data = { "北京":{ "东城区":{ "安定门":["国子监", ...

  7. Day2课后作业:sed替换程序

    #!/usr/bin/env python #_*_conding:utf-8_*_ import sys,os old_file = sys.argv[1] new_file = sys.argv[ ...

  8. java课程课后作业190612之Beta版总结会议

    1.每个成员在beta 阶段的实践和alpha 阶段有何改进? 陈阳:在编程的时候学习广播知识,了解了Android的广播机制完成了上课静音以及课前提醒的功能,在代码的美观上也有了一定的提升 2. 团 ...

  9. Py修行路 python基础 (五)三元运算 字符编码 元组 集合 三级菜单优化!

    三元运算 条件判断不能加冒号: a=3 b=5 c=a if a<b else b oct() 转成八进制的简写:16进制 标志:BH为后缀或是0x为前缀hex() 转成16进制 元组 跟列表是 ...

随机推荐

  1. CMD help

    ASSOC 显示或修改文件扩展名关联. ATTRIB 显示或更改文件属性. BREAK 设置或清除扩展式 CTRL+C 检查. BCDEDIT 设置启动数据库中的属性以控制启动加载. CACLS 显示 ...

  2. awk实现求和、平均、最大值和最小值的计算操作

    0.准备和数据文件 比如有一个数据文件,只有一列(在之前可以通过各种手段过滤出只有数字这一列),比如操作的响应时间 Txt代码  490898  1189235  20212  1494270  14 ...

  3. FFT的常数优化

    卡得一手好常数..学习了..(似乎只对FFT有效) JZOJ 4349 #include <bits/stdc++.h> #define LL long long #define DB l ...

  4. Java使用Jacob转换Word为HTML

    从今天开始,我也要养成记录开发中遇到的问题和解决方法的好习惯! 最近开发一个Android项目,需要用到查看Word和Pdf文档的功能,由于Android没有直接显示Word和PDF文档的组件,只有一 ...

  5. JavaScript-Tool:jquery.md5.js

    ylbtech-JavaScript-Tool:jquery.md5.js 1.返回顶部 1. 引入js后 使用方法:document.write($.md5('1234')); 加密结果:81dc9 ...

  6. redis 操作使用

    /*1.Connection*/ $redis = new Redis(); $redis->connect('127.0.0.1',6379,1);//短链接,本地host,端口为6379,超 ...

  7. Linux : linux命令之 svn

    感谢前辈的整理,让我直接站在巨人的肩膀上.来自:http://www.jb51.net/os/RedHat/2461.html 1.将文件checkout到本地目录 svn checkout path ...

  8. Kafka入门之生产者消费者

    一.Kafka安装与使用 ( kafka介绍     ) 1. 下载Kafka 官网 http://kafka.apache.org/    以及各个版本的下载地址 http://archive.ap ...

  9. opencv Mat.at

    opencv c++ mat获取像素及像素赋值 For accessing pixel's channel value : ; i < image.cols; i++) { ; j < i ...

  10. Tesseract的使用

    参考:http://blog.csdn.net/qy20115549/article/details/78106569 下载tess4j的安装包. 首先,在该网站中下载tess4j的安装包. http ...