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. 有返回上一级菜单的功 ...
随机推荐
- 例子:照片的OCR识别
来自ng的ml-003中 18_XVIII._Application_Example-_Photo_OCR 这是ng2013年在coursera上最后的一课了.这一系列的几个视频还是相比前面有些难懂, ...
- 【转】php容易犯错的10个地方
原文地址: http://www.toptal.com/php/10-most-common-mistakes-php-programmers-make 译文地址:http://codecloud.n ...
- 使用MySQL命令行修改密码
格式:mysqladmin -u用户名 -p旧密码 password 新密码 1.给root加个密码ab12.首先在DOS下进入目录mysql\bin,然后键入以下命令 mysqladmin - ...
- 20155331《网络对抗》Exp5 MSF基础应用
20155331<网络对抗>Exp5 MSF基础应用 基础问题回答 用自己的话解释什么是exploit,payload,encode 答:exploit就是漏洞利用.exploit就是利用 ...
- 关于Trie的一些算法
最近学习了一下关于Trie的一些姿势,感觉很实用. 终于不用每次看到字符串判重等操作就只想到hash了 关于Trie的定义,来自百度百科 在计算机科学中,Trie,又称前缀树或字典树,是一种有序树状的 ...
- 蓝牙disable流程简述
蓝牙关闭的流程比打开流程要简单,主要就是一些profile的断连以及协议栈相关结构的释放. 这里简单说一下其流程,就直接从协议栈的disable的接口说起了. static int disable(v ...
- python 算法面试题
1.题目是:有一组“+”和“-”符号,要求将“+”排到左边,“-”排到右边,写出具体的实现方法. def StringSort(data): startIndex=0 endIndex=0 count ...
- centos7 部署mysql-5.7.20
一.系统环境 系统:CentOS Linux release 7.5 mysqlb进制包:mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz 1)依赖包安装 yum ...
- 教你用PS制作雨天窗户上透明水滴字
雨天窗户上透明水滴字制作方法很简单,主要利用图层样式来实现.学习后可以让你对图层样式有更好的了解,认识. 先看下完成后的效果图: 步骤1: 在Photoshop中我们新建或Ctrl+N,创建1920x ...
- CentOS7使用winbind加入AD
https://ishm.idv.tw/?p=336 CentOS 7 使用 winbind 加入 AD 需求:已經熟悉 CentOS 6 的 AD 加入方式,CentOS 7 已將 winbind ...