一:制作要求

  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_简单三级菜单制作的更多相关文章

  1. HTML+CSS实现简单三级菜单

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. python三级菜单制作 day4

    需求:可依次选择进入各子菜单可从任意一层往回退到上一层可从任意一层退出程序所需新知识点:列表.字典 数据结构: menu = {    '北京':{        '海淀':{            ...

  3. python_入门_三级菜单

    '''程序:三级菜单要求:1.打印省.市.县三级菜单2.可返回上一级3.可随时退出程序''' # -*- coding: utf-8 -*- # __author__ = 'qi' prov_city ...

  4. Python学习-------------------三级菜单简单版

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

  5. Python3学习之路~2.5 简单的三级菜单程序

    程序:三级菜单 需求: 1.打印省.市.县三级菜单2.可返回上一级3.可随时退出程序 代码1: data={ "山东":{ "济南":["历下区&qu ...

  6. vue的递归组件以及三级菜单的制作

    js里面有递归算法,同时,我们也可以利用props来实现vue模板的递归调用,但是前提是组件拥有 name 属性 父组件:slotDemo.vue: <template> <div& ...

  7. python(5)- 简单练习:python三级菜单优化

    python三级菜单优化,菜鸟版链接:http://www.cnblogs.com/xuyaping/p/6648170.html menu = { '北京':{ '海淀':{ '五道口':{ 'so ...

  8. 纯css制作三级菜单

    <!DOCTYPE html> <html> <head> <title>三级菜单</title> <meta charset=&qu ...

  9. css三级菜单效果

    一个简单实用的css三级菜单效果 <!doctype html> <html> <head> <meta charset="utf-8"& ...

随机推荐

  1. 从零起步做到Linux运维经理, 你必须管好的23个细节

    “不想成为将军的士兵,不是好士兵”-拿破仑 如何成为运维经理? 一般来说,运维经理大概有两种出身:一种是从底层最基础的维护做起,通过出色的维护工作,让公司领导对这个人非常认可,同时对Linux运维工作 ...

  2. 监听HTTP请求

    using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Oracle.DataAccess.Client; using System; usi ...

  3. 深入理解JVM(一)——基本原理

    前言 JVM一直是java知识里面进阶阶段的重要部分,如果希望在java领域研究的更深入,则JVM则是如论如何也避开不了的话题,本系列试图通过简洁易读的方式,讲解JVM必要的知识点. 运行流程 我们都 ...

  4. 一次java Cpu占用过高的排查

    某一个项目CPU占用率一直很高,经常在40%-50%之间,最近比较闲,就开始了排查工作. 1.通过 jstack命令输出进程的堆栈信息 jstack 2788 >C:\log.txt 将堆栈信息 ...

  5. 深入分析.NET应用程序SQL注入【危害】

    前言:   前面我们已经简单的剖析了一下.NET应用程序SQL注入.没有看过的朋友移步:http://bbs.ichunqiu.com/thread-7636-1-1.html,在上一篇文章我们已经了 ...

  6. Java工程师如何在1个月内做好面试准备?

    作者:石杉的架构笔记 写在前面 春节长假转眼已过,即将迎来的是一年一度的金三银四跳槽季. 假如你准备在金三银四跳槽的话,那么作为一个Java工程师,应该如何利用1个月的时间,快速的为即将到来的面试进行 ...

  7. python写的翻译代码

    # -*- coding: utf-8 -*- from Tkinter import *import difflibimport urllib2import urllib # python2.7才需 ...

  8. 吴恩达机器学习笔记37-学习曲线(Learning Curves)

    学习曲线就是一种很好的工具,我经常使用学习曲线来判断某一个学习算法是否处于偏差.方差问题.学习曲线是学习算法的一个很好的合理检验(sanity check).学习曲线是将训练集误差和交叉验证集误差作为 ...

  9. StackExchange.Redis 模糊查询和删除

    初始化连接对象 _connectionString = ConfigurationManager.ConnectionStrings["RedisConnectionString" ...

  10. 微信小程序入门(三)

    11.开发框架基本介绍 四个组成部分,其它三个前面介绍过了,主要WXS: WXS:对wxml增强的一种脚本语言,可以对请求的数据进行filter或者做计算处理,帮助wxml快速构建出页面结构. 12. ...