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. php常用加密函数总结

    $var = 123; /** * md5 加密(单项加密.不可逆) * param $var 需要加密的变量(int\float\string\bool\null),资源类型(resource)和复 ...

  2. Java 发送Get和Post请求

    package com.htpt.superviseServices.dm.util; import java.io.BufferedReader; import java.io.IOExceptio ...

  3. UVA-11892(组合游戏)

    题意: 给n堆石子,每堆有ai个,每次可以取每堆中任意数目的石子;但是上一次操作的人没有将一堆全部取走,那么下一个人还要在那一堆取; 思路: 每次取到这堆就剩一个的策略; AC代码: #include ...

  4. 001 - 配置Pycharm的字体大小

    本文记录的是Pycharm2017年1月版本 1 配置代码区的字体大小 位置在 File -> setting -> Editor -> Color&Fonts -> ...

  5. fhq-treap简介

    \(fhq-treap\)是个好东西啊!无旋转\(treap\)果然是好写,而且还是比较好理解的. 这种数据结构是由神犇fhq发明的.\(Think\ functional!\) fhq神犇说,函数式 ...

  6. PowerDesigner 连接 MySQL 并生成逆向工程图

    1 配置环境变量 Tools → General Options → Variables   配置 JVM 变量 General Options 在最后,要一直往下拉才会看到. 注意: PowerDe ...

  7. dos窗口的乱码问题

    1.在dos窗口上输入chcp 65001 2.然后右键属性选择字体

  8. 五、hibernate在myeclipse中生成实体和映射

  9. CS231n 2016 通关 第四章-NN 作业

    cell 1 显示设置初始化 # A bit of setup import numpy as np import matplotlib.pyplot as plt from cs231n.class ...

  10. html中调用本地exe应用程序

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...