Day2课后作业:三级菜单简单版
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课后作业:三级菜单简单版的更多相关文章
- Day2课后作业:购物车简单版
PRODUCT_LIST = [ ['iphone7',6500], ['macbook',12000], ['pythonbook',66], ['bike',999], ['coffee',31] ...
- Python学习-------------------三级菜单简单版
题目: 多级菜单 1.三级菜单 2.可依次选择进入的各子菜单 3.所需新知识点:列表.字典 ReadMe: 这个做循环,比较绕脑子 点开运行即可 Min ...
- day1作业--三级菜单
作业概述: 写一个三级菜单 实现如下功能: (1)可依次选择进入各子菜单 (2)在每一级按“b”都可以返回上一级,按“q"都可以退出 流程图: readme: 简介: three_menu. ...
- python作业三级菜单day1(第一周)
一.作业需求: 1. 运行程序输出第一级菜单 2. 选择一级菜单某项,输出二级菜单,同理输出三级菜单 3. 菜单数据保存在文件中 4. 让用户选择是否要退出 5. 有返回上一级菜单的功能 二三级菜单文 ...
- Python 三级菜单 增强版
需要实现的功能是:三级菜单1.从文本内读出选项2.查询每一级的选项,并能对选项进行增/删/改功能3.每一级可以退出程序或者返回上一层 2018-5-14 更新内容 思路 实现过程中的BUG及解决方案: ...
- python3 三级菜单-基础版
# -*- coding:utf-8 -*- data = { "北京":{ "东城区":{ "安定门":["国子监", ...
- Day2课后作业:sed替换程序
#!/usr/bin/env python #_*_conding:utf-8_*_ import sys,os old_file = sys.argv[1] new_file = sys.argv[ ...
- java课程课后作业190612之Beta版总结会议
1.每个成员在beta 阶段的实践和alpha 阶段有何改进? 陈阳:在编程的时候学习广播知识,了解了Android的广播机制完成了上课静音以及课前提醒的功能,在代码的美观上也有了一定的提升 2. 团 ...
- Py修行路 python基础 (五)三元运算 字符编码 元组 集合 三级菜单优化!
三元运算 条件判断不能加冒号: a=3 b=5 c=a if a<b else b oct() 转成八进制的简写:16进制 标志:BH为后缀或是0x为前缀hex() 转成16进制 元组 跟列表是 ...
随机推荐
- leeetcode 735. Asteroid Collision
We are given an array asteroids of integers representing asteroids in a row. For each asteroid, the ...
- WebDriver API——javascript的相关操作
有些时候webdriver是没法操作元素或浏览器的,这时候我们可以通过javascript来进行相关的操作,昨天在群里一个朋友定位一个显示框,总是无法定位点击,或者是点击无效,这个时候就可以用java ...
- top命令按内存和cpu排序
目录 按进程的CPU使用率排序 按进程的内存使用率排序 按进程的CPU使用率排序 运行top命令后,键入大写P. 有两种途径: a) 打开大写键盘的情况下,直接按P键 b) 未打开大写键盘的情况下,S ...
- 存储过程系列五:完整的存储过程备份使用函数REPLACE()substr()
CREATE OR REPLACE PROCEDURE "YLQXSCXKESL_GGXKZ_TO_QB" ( ...
- python之yield和Generator
首先我们从一个小程序导入,各定一个list,找出其中的素数,我们会这样写 import math def is_Prims(number): if number == 2: return True / ...
- HDU1852 Beijing 2008(快速幂+特殊公式)
As we all know, the next Olympic Games will be held in Beijing in 2008. So the year 2008 seems a lit ...
- nagios对windows流量的检测
windows下用于和 nagios 整合监控的方式主要有三种:nsclient++ .nrpe_nt.SNMP.三者各自的特点主要如下: 1.nsclient++比较成熟稳定,文档也丰富,内置很多了 ...
- CS231n 2016 通关 第四章-反向传播与神经网络(第一部分)
在上次的分享中,介绍了模型建立与使用梯度下降法优化参数.梯度校验,以及一些超参数的经验. 本节课的主要内容: 1==链式法则 2==深度学习框架中链式法则 3==全连接神经网络 =========== ...
- Monkey学习(转载)
Monkey测试特点 什么是Monkey test? 如其名,像猴子一样,虽然什么都不懂,但是可以乱点一通,可以理解为压力测试.在规定的时间或次数范围内做任何随机的操作,随即操作包括点击.滑动.... ...
- SmartSql使用教程(1)——初探,建立一个简单的CURD接口服务
一.引言 最近SmartSql被正式引入到了NCC,借着这个契机写一个使用教程系列 二.SmartSql简介[摘自官方文档] 1. SmartSql是什么? SmartSql = MyBatis + ...