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. 有返回上一级菜单的功 ...
随机推荐
- css样式匹配苹果个型号手机
/*适配苹果X*/ @media only screen and (device-width: 375px) and (device-height: 812px) and (-webkit-devic ...
- CUDA2.4-原理之性能优化及浮点运算
本部分来自于<大规模并行处理器编程实战>第六章.第七章.打算不再看这本书了,准备看<programming massively parallel processors 2nd> ...
- 网络运营商名称显示&SIM名称显示
一 网络名称显示这部分比較复杂.Spec对这也有明白的规定,依据其优先级由高往低介绍(其优先级參考TS 22.101), 1. Enhanced Operator Name String. ...
- Codeforces Round #503 Div1+Div2 1019&1020
https://winniechen.cn/?p=188 这个还是直接放链接吧,毕竟内容比较多...
- 网络对抗技术 2017-2018-2 20152515 Exp4 恶意代码分析
1.实验后回答问题 (1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用什么方法来监控. 答:- 我会使用sysmon工具来 ...
- WPF编程,获取句柄将外部程序嵌入到WPF界面。
原文:WPF编程,获取句柄将外部程序嵌入到WPF界面. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/article/details ...
- centos 7 jenkins 部署
安装jenkins 1.拉取库的配置到本地对应文件 sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redha ...
- Windows10没有修改hosts文件权限的解决方案(亲测有效)
当遇到有hosts文件不会编辑或者,修改了没办法保存”,以及需要权限等问题如图: 或者这样: 我学了一招,现在教给你: 1.win+R 2.进入hosts的文件所在目录: 3.我们开始如何操作才能不出 ...
- 关于java线程池的一丢丢
线程池应用达到的目的 1.降低资源消耗:可以重复利用已创建的线程从而降低线程创建和销毁所带来的消耗. 2.提高响应速度:当任务到达时,不需要等线程创建就可以立即执行. 3.提高线程的可管理性:使用线程 ...
- ELK安装部署
一.ELK简介 ELK是Elasticsearch.Logstash.Kibana的简称,这三者是核心套件,但并非全部.Elasticsearch是实时全文搜索和分析引擎,提供搜集.分析.存储数据三大 ...