Python_简单三级菜单制作
一:制作要求
1.三级菜单
2.可依次选择进入各子菜单
3.所需新知识点:字典,列表
*本文通过三种方法完成,第一种:只使用循环,第二种:使用列表,第三种:使用字典
二:FlowChart流程图


与上图对应,实现方式图解:

while用来判断输入的数据和允许输入数据中的哪一项匹配,if来进行判断是否退出本次循环,
三:具体实现代码:
1.没有使用列表字典
#三级菜单 输入都是用一个变量 0120使用字典,列表 #思路:while
#定义一级菜单
msg='''
请输入你要进行的操作前面的索引(1,2,3,b): 1.北京
2.上海
3.香港
b.退出
'''
#定义二级菜单
msg_1='''
1.朝阳区
2.西城区
3.海淀区
b.返回上一级
'''
msg_2_2='''
1.西城区_A
2.西城区_B
3.西城区_C
b.返回上一级
'''
#定义三级菜单
msg_2_1='''
1.朝阳区_A
2.朝阳区_B
3.朝阳区_C
b.返回上一级
'''
while True:
#输出一级菜单:
print(msg)
select_input=input("请输入你的选择:")
#选项一
while select_input== "":
print(msg_1)
select_input_1 = input("请输入你的选择:")
while select_input_1 == "":
print(msg_2_1)
select_input_2 = input("请输入你的选择:")
if select_input_2=="b":
break
while select_input_1 == "":
print(msg_2_2)
select_input_2 = input("请输入你的选择:")
if select_input_2 == "b":
break
while select_input_1 == "":
print(msg_2_2)
select_input_2 = input("请输入你的选择:")
if select_input_2 == "b":
break
if select_input_1== "b":
break
#选项二
while select_input == "":
print(msg_1)
select_input_1 = input("请输入你的选择:")
while select_input_1 == "":
print(msg_2_1)
select_input_2 = input("请输入你的选择:")
if select_input_2 == "b":
break
while select_input_1 == "":
print(msg_2_2)
select_input_2 = input("请输入你的选择:")
if select_input_2 == "b":
break
while select_input_1 == "":
print(msg_2_2)
select_input_2 = input("请输入你的选择:")
if select_input_2 == "b":
break
if select_input_1 == "b":
break
#选项三
while select_input == "":
print(msg_1)
select_input_1 = input("请输入你的选择:")
while select_input_1 == 1:
print(msg_2_1)
select_input_2 = input("请输入你的选择:")
if select_input_2 == "b":
break
while select_input_1 == "":
print(msg_2_2)
select_input_2 = input("请输入你的选择:")
if select_input_2 == "b":
break
while select_input_1 == "":
print(msg_2_2)
select_input_2 = input("请输入你的选择:")
if select_input_2 == "b":
break
if select_input_1 == "b":
break
#选项四
if select_input=="b":
break
print("本次使用结束!")
2.使用列表
# 三级菜单 输入都是用一个变量 0120使用字典,列表 # 思路:while
# 通过定义列表进行选项存储
list=["北京","上海","香港","退出"]
list_1=["朝阳区","西城区","海淀区","返回上一级"]
list_1_1=["朝阳区_A","朝阳区_B","朝阳区_C","返回上一级"]
list_1_2=["西城区_A","西城区_B","西城区_C","返回上一级"]
while True:
# 输出一级菜单:
for i in list:
print(" \n%s: %s"%(list.index(i)+1,i))
select_input = input("请输入你的选择:")
# 选项一
while select_input == "":
for i in list_1:
print(" \n%s: %s" % (list_1.index(i) + 1, i))
select_input_1 = input("请输入你的选择:")
while select_input_1 == "":
for i in list_1_1:
print(" \n%s: %s" % (list_1_1.index(i) + 1, i))
select_input_2 = input("请输入你的选择:")
if select_input_2 == "":
break
while select_input_1 == "":
for i in list_1_2:
print(" \n%s: %s" % (list_1_2.index(i) + 1, i))
select_input_2 = input("请输入你的选择:")
if select_input_2 == "":
break
while select_input_1 == "":
for i in list_1_2:
print(" \n%s: %s" % (list_1_2.index(i) + 1, i))
select_input_2 = input("请输入你的选择:")
if select_input_2 == "":
break
if select_input_1 == "":
break
# 选项二
while select_input == "":
for i in list_1:
print(" \n%s: %s" % (list_1.index(i) + 1, i))
select_input_1 = input("请输入你的选择:")
while select_input_1 == "":
for i in list_1_2:
print(" \n%s: %s" % (list_1_2.index(i) + 1, i))
select_input_2 = input("请输入你的选择:")
if select_input_2 == "":
break
while select_input_1 == "":
for i in list_1_2:
print(" \n%s: %s" % (list_1_2.index(i) + 1, i))
select_input_2 = input("请输入你的选择:")
if select_input_2 == "":
break
while select_input_1 == "":
for i in list_1_2:
print(" \n%s: %s" % (list_1_2.index(i) + 1, i))
select_input_2 = input("请输入你的选择:")
if select_input_2 == "":
break
if select_input_1 == "":
break
# 选项三
while select_input == "":
for i in list_1:
print(" \n%s: %s" % (list_1.index(i) + 1, i))
select_input_1 = input("请输入你的选择:")
while select_input_1 == 1:
for i in list_1_2:
print(" \n%s: %s" % (list_1_2.index(i) + 1, i))
select_input_2 = input("请输入你的选择:")
if select_input_2 == "":
break
while select_input_1 == "":
for i in list_1_2:
print(" \n%s: %s" % (list_1_2.index(i) + 1, i))
select_input_2 = input("请输入你的选择:")
if select_input_2 == "":
break
while select_input_1 == "":
for i in list_1_2:
print(" \n%s: %s" % (list_1_2.index(i) + 1, i))
select_input_2 = input("请输入你的选择:")
if select_input_2 == "":
break
if select_input_1 == "":
break
# 选项四
if select_input == "":
break
print("本次使用结束!")
使用列表运行效果和第一种方法类似,只不过把返回的值改成了4,
3.使用字典
# 三级菜单 输入都是用一个变量 0120使用字典,列表 # 思路:while
# 通过字典进行选项存储
dic={
"1.北京":{
"1.朝阳区":["朝阳区_A","朝阳区_B","朝阳区_C","返回上一级"],
"2.西城区":["西城区_A","西城区_B","西城区_C","返回上一级"],
"3.海淀区":[],
"4.返回上一级":[]
},
"2.上海":{},
"3.香港":{},
"b.退出":{}
} while True:
# 输出一级菜单:
print(dic.keys())
select_input = input("请输入你的选择:")
# 选项一
while select_input == "":
print(dic["1.北京"].keys())
select_input_1 = input("请输入你的选择:")
while select_input_1 == "":
print(dic["1.北京"]["1.朝阳区"])
select_input_2 = input("请输入你的选择:")
if select_input_2 == "b":
break
while select_input_1 == "":
print(dic["1.北京"]["1.朝阳区"])
select_input_2 = input("请输入你的选择:")
if select_input_2 == "b":
break
while select_input_1 == "":
print(dic["1.北京"]["1.朝阳区"])
select_input_2 = input("请输入你的选择:")
if select_input_2 == "b":
break
if select_input_1 == "b":
break
# 选项二
while select_input == "":
print(dic["1.北京"].keys)
select_input_1 = input("请输入你的选择:")
while select_input_1 == "":
print(dic["1.北京"]["1.朝阳区"])
select_input_2 = input("请输入你的选择:")
if select_input_2 == "b":
break
while select_input_1 == "":
print(dic["1.北京"]["1.朝阳区"])
select_input_2 = input("请输入你的选择:")
if select_input_2 == "b":
break
while select_input_1 == "":
print(dic["1.北京"]["1.朝阳区"])
select_input_2 = input("请输入你的选择:")
if select_input_2 == "b":
break
if select_input_1 == "b":
break
# 选项三
while select_input == "":
print(dic["1.北京"].keys)
select_input_1 = input("请输入你的选择:")
while select_input_1 == 1:
print(dic["1.北京"]["1.朝阳区"])
select_input_2 = input("请输入你的选择:")
if select_input_2 == "b":
break
while select_input_1 == "":
print(dic["1.北京"]["1.朝阳区"])
select_input_2 = input("请输入你的选择:")
if select_input_2 == "b":
break
while select_input_1 == "":
print(dic["1.北京"]["1.朝阳区"])
select_input_2 = input("请输入你的选择:")
if select_input_2 == "b":
break
if select_input_1 == "b":
break
# 选项四
if select_input == "b":
break
print("本次使用结束!")
四:运行效果截图(第一种方法):
五:注意事项
1.Python虽然简单,但是一定要熟练掌握格式,有的时候差一个空格都会出错而且还不容易排除错误.
2.关于语句:
select_input=b
while int(select_input)==1
运行报错:ValueError: invalid literal for int() with base 10: 'b',
语法错误
出错原因:Python3.0以后的版本不能进行字符串转换类型之后与数字之间的比较与判断
所以改成:select_input=="1"
Python_简单三级菜单制作的更多相关文章
- HTML+CSS实现简单三级菜单
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- python三级菜单制作 day4
需求:可依次选择进入各子菜单可从任意一层往回退到上一层可从任意一层退出程序所需新知识点:列表.字典 数据结构: menu = { '北京':{ '海淀':{ ...
- python_入门_三级菜单
'''程序:三级菜单要求:1.打印省.市.县三级菜单2.可返回上一级3.可随时退出程序''' # -*- coding: utf-8 -*- # __author__ = 'qi' prov_city ...
- Python学习-------------------三级菜单简单版
题目: 多级菜单 1.三级菜单 2.可依次选择进入的各子菜单 3.所需新知识点:列表.字典 ReadMe: 这个做循环,比较绕脑子 点开运行即可 Min ...
- Python3学习之路~2.5 简单的三级菜单程序
程序:三级菜单 需求: 1.打印省.市.县三级菜单2.可返回上一级3.可随时退出程序 代码1: data={ "山东":{ "济南":["历下区&qu ...
- vue的递归组件以及三级菜单的制作
js里面有递归算法,同时,我们也可以利用props来实现vue模板的递归调用,但是前提是组件拥有 name 属性 父组件:slotDemo.vue: <template> <div& ...
- python(5)- 简单练习:python三级菜单优化
python三级菜单优化,菜鸟版链接:http://www.cnblogs.com/xuyaping/p/6648170.html menu = { '北京':{ '海淀':{ '五道口':{ 'so ...
- 纯css制作三级菜单
<!DOCTYPE html> <html> <head> <title>三级菜单</title> <meta charset=&qu ...
- css三级菜单效果
一个简单实用的css三级菜单效果 <!doctype html> <html> <head> <meta charset="utf-8"& ...
随机推荐
- Key Technologies Primer 读书笔记,翻译 --- Struct 学习 1
原文链接:https://struts.apache.org/primer.html 本来想写成读书笔记的,结果还是变成翻译,谨作记录,学习. 1.HTML -- 见我前面文章 2.Interne ...
- java 静态变量 静态代码块 加载顺序问题
在网上看了一个这样的题目 public class StaticTest { public static void main(String[] args) { staticFunction(); } ...
- MySQL--自增列学习
##=====================================================================================## 在数据库表设计中会纠 ...
- 16bit CRC算法C语言实现
#define CRC_16_POLYNOMIALS 0x8005 unsigned short CRC16_3(unsigned char* pchMsg, unsigned short wData ...
- 使用MXNet的NDArray来处理数据
NDArray.ipynb NDArray介绍 机器学习处理的对象是数据,数据一般是由外部传感器(sensors)采集,经过数字化后存储在计算机中,可能是文本.声音,图片.视频等不同形式. 这些数字化 ...
- Canal学习笔记(客户端)
前言 最近公司用到Canal来做从MySQL到Tidb的数据同步,用到HA模式Canal,记录一下HA模式的工作原理. Canal的架构模式 Canal是利用binlog日志来做数据同步,canal伪 ...
- Java 使用 int 数据计算百分比
int diliverNum=3;//举例子的变量 int queryMailNum=9;//举例子的变量 // 创建一个数值格式化对象 NumberFormat numberFormat = Num ...
- Kali学习笔记8:四层发现
1.基于TCP协议 优点: 1.可路由且结果可靠 2.不太可能会被防火墙过滤 3.甚至可以发现端口 缺点: 速度较慢(三次握手) 利用Scapy发送ACK数据包: 配置数据包: 发送数据包: 看一下收 ...
- php--include 、require
一.include .require 定义:包含并运行指定文件 问题:查询了这两个语言结构的资料,有人说,什么require 先执行,什么include后执行. 思考:我觉得官方文档已经解释的很清楚 ...
- Java Socket NIO详解(转)
java选择器(Selector)是用来干嘛的? 2009-01-12 22:21jsptdut | 分类:JAVA相关 | 浏览8901次 如题,不要贴api的,上面的写的我看不懂希望大家能给我个通 ...

