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

代码:
#!/usr/bin/env python
#py3.5
#2018.02.06
#-*- Coding:utf-8 -*-
# Author:Eric.Shen
#多级菜单
#1.三级菜单
#2.可依次选择进入的各子菜单
#3.所需新知识点:列表、字典 #自己建立一个三级字典
menu = {
"衣服":{
"男士":["上衣","下衣","鞋包","皮带"],"女士":["上衣","裤子","裙子","鞋包"],"儿童":["上衣","下衣","鞋包"]},
"汽车":{
"精品车":["宝马","奔驰","路虎"],"二手车":["大众","本田","荣威"]},
"食物":{"肉":["肥肉","瘦肉","肥瘦"]}
} #将三级菜单的key赋值product_list
product_list = list(menu.keys())#获得一级菜单
while True:
print("菜单".center(50,"*"))
for line in product_list:
print(product_list.index(line),line)
print("------------------")
choice = input("请输入编号或者输入q退出b返回:")
if choice.isdigit():
choice = int(choice)
if choice >= 0 and choice < len(product_list):
choice_name = product_list[choice]#获得第一级Id
product = list(menu[choice_name].keys())#获得选择商品的下一级菜单
while True:
print("商品".center(50,"*"))
for line2 in product:#打印二级菜单
print(product.index(line2),line2)
print("----------------")
choice_product = input("请输入编号或者输入q退出b返回:")
if choice_product.isdigit():
choice_product = int(choice_product)
if choice_product >= 0 and choice_product < len(product_list):
choice_name2 = product[choice_product]#获得第二级的Id
choice_name2_list = menu[choice_name][choice_name2]#获得第二级菜单
while True:
print("衣物".center(50,"*"))
for line3 in choice_name2_list:
print(choice_name2_list.index(line3),line3)
back_or_quit = input("返回输入b,退出输入q")
if back_or_quit == "b":
break
elif back_or_quit == "q":
exit()
else:
print("输入错误!")
else:
print("输入%d不存在"%(choice_product))
elif choice_product == "q":
exit()
elif choice_product == "b":
break
else:
print("输入非法!")
else:
print("输入%d不存在"%(choice))
elif choice == "q":
exit()
elif choice == "b":
break
else:
print("输入非法!")
欢迎指错
Python学习-------------------三级菜单简单版的更多相关文章
- Day2课后作业:三级菜单简单版
menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{}, '网易':{}, '谷歌':{} }, '中关村':{ '爱奇艺':{}, '汽车之家':{}, 'youku':{ ...
- 《Python学习手册 第五版》 -第13章 while循环和for循环
上一章已经讲过if条件语句,这章重点是循环语句:while.for 本章的重点内容 1.while循环 1)一般形式 2)break.continue.pass和循环的else 2.for循环 1)一 ...
- 《Python学习手册 第五版》 -第12章 if测试和语法规则
本章节的内容,主要讲解if语句,if语句是三大复合语句之一(其他两个是while和for),能处理编程中大多数逻辑运算 本章的重点内容如下: 1.if语句的基本形式(多路分支) 2.布尔表达式 3.i ...
- 《Python学习手册 第五版》 -第10章 Python语句简介
前面在开始讲解数据类型的时候,有说过Python的知识结构,在此重温一下 Python知识结构: 程序由模块组成 模块包含语句 语句包含表达式 表达式创建并处理对象 关于知识结构,前面已经说过我自己的 ...
- 《Python学习手册 第五版》 -第18章 参数
在函数的定义和调用中,参数是使用最多喝最频繁的,本章内容就是围绕函数的参数进行讲解 本章重点内容如下: 1.参数的传递 1)不可变得参数传递 2)可变得参数传递 2.参数的匹配模式 1)位置次序:从左 ...
- 《Python学习手册 第五版》 -第15章 文档
本章主要介绍Python中的文档,会通过多种方式来说明,如果查看Python自带文档和其他参考的资料 本章重点内容 1.#注释:源文件文档 2.dir函数:以列表显示对象中可用的属性 3.文档字符串 ...
- 《Python学习手册 第五版》 -第16章 函数基础
前面的章节讲解的是一些基础数据类型.基本语句使用和一些文档查看的内容,这些都是一些基础,其实还谈不上入门,只有了解了函数,才算入门 函数是编程里面使用最多的也是最基本的程序结构, 本章重点内容 1.函 ...
- python打怪之路【第三篇】:利用Python实现三级菜单
程序: 利用Python实现三级菜单 要求: 打印省.市.县三级菜单 可返回上一级 可随时退出程序 coding: menu = { '北京':{ '朝阳':{ '国贸':{ 'CICC':{}, ' ...
- python之三级菜单
python之三级菜单 要求: 1. 运行程序输出第一级菜单 2. 选择一级菜单某项,输出二级菜单,同理输出三级菜单 3. 菜单数据保存在文件中 4. 让用户选择是否要退出 5. 有返回上一级菜单的功 ...
随机推荐
- Android 多用户多缓存的简单处理方案
需求:1.在缓存中记录用户登录信息.例如:用户名,密码 2.记录用户操作数据.例如:是否记住用户名密码.设置7天内自动登录等 简单设计:1)使用sqlite设计一张用户数据表,有用户名.密码.操作数据 ...
- 计算机视觉-sift(1)原理
1999年由David Lowe首先发表于计算机视觉国际会议(International Conference on Computer Vision,ICCV),2004年再次经David Lowe整 ...
- 半导体热阻问题深度解析(Tc,Ta,Tj,Pc)
半导体热阻问题深度解析(Tc,Ta,Tj,Pc) 本文是将我以前的<有关热阻问题>的文章重新梳理,按更严密的逻辑来讲解. 晶体管(或半导体)的热阻与温度.功耗之间的关系为: Ta=Tj-* ...
- 常用数据库驱动名称以及URL
oracle: 驱动类的名字:oracle.jdbc.driver.OracleDriver URL:jdbc:oracle:thin:@dbip:port:databasename Mysql: 驱 ...
- 64位RHEL5系统上运行yum出现"This system is not registered with RHN”的解决方法
在红帽EL5上运行yum,提示“This system is not registered with RHN”,意思是没有在官网上注册,不能下载RH的软件包,替代方案是采用centos源. 1.卸载r ...
- WPF编程,TextBlock中的文字修饰线(上划线,中划线,基线与下划线)的使用方法。
原文:WPF编程,TextBlock中的文字修饰线(上划线,中划线,基线与下划线)的使用方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_4330 ...
- docker之镜像管理命令
一.docker image 镜像管理命令 指令 描述ls 列出本机镜像build 构建镜像来自Dockerfilehistory 查看镜像历史inspect 显示一个或多个镜像详细信息pull 从镜 ...
- 调试OV2735总结
调试找到的问题: 1:开始调试的时候因为之前的工程师原理图和BOM出错,导致本来是2.8V电压的焊接的是1.8V的LDO所以这个是第一个问题 2:因为FAE反应说sensor没有反应I2C没有通信,所 ...
- 关于Unity物理事件的执行顺序的最新理解
物体A: public class A:{ B b; void FixedUpdate(){ if(input.GetKeyDow(Keycode.I)) { collider.enable=fals ...
- MVC模式简单的Xml文档解析加Vue渲染
前端代码: <script src="~/Js/jquery-3.3.1.min.js"></script> <script src="~/ ...