python实现三级菜单间的前后跳转
#录入菜单
def createMenu():
Menu = {}
provinces = ["陕西","四川","江苏"]
shanXi_cities = ["西安","宝鸡"]
siChuan_cities = ["成都","绵阳"]
jiangSu_cities = ["南通","苏州"]
xiAn_locals = ["高新区","郭杜镇"]
baoJi_locals = ["鸡1区","鸡2区"]
chengDu_locals = ["锦江区","武侯区"]
mianyang_locals = ["羊1区","羊2区"]
nanTong_locals = ["通1区","通2区"]
suZhou_locals = ["苏1区","苏2区"]
for i,j in zip([[shanXi_cities,[xiAn_locals,baoJi_locals]],[siChuan_cities,[chengDu_locals,mianyang_locals]],[jiangSu_cities,[nanTong_locals,suZhou_locals]]],provinces):
menu = {}
for m,n in zip(i[0],i[1]):
menu[m] = n
Menu[j] = menu
return Menu
#打印一级菜单
def printProvince(Menu):
print("The provinces are listed as below\n----------------------")
for i in Menu.items():
print(i[0])
print("----------------------")
#打印二级菜单
def printCities(Menu,province):
print("The cities are listed as below\n----------------------")
for i in Menu[province].items():
print(i[0])
print("----------------------")
return province
#打印三级菜单
def printLocals(Menu,province,city):
print("The district are listed as below\n----------------------")
for i in Menu[province][city]:
print(i)
print("----------------------")
if __name__=='__main__':
Menu = createMenu()
printProvince(Menu)
userInput = [] #用来判别处于哪一级菜单
while(len(userInput)>=0):
#位于一级菜单
if(len(userInput) == 0):
province = input("Enter the province you wanted: ")
#回退仍处于一级菜单
if province == "b":
printProvince(Menu)
#退出
elif province == "exit":
break
#进入二级菜单
else:
while True:
try:
printCities(Menu,province)
userInput.append(province)
break
except Exception as e:
province = input("省名输入错误,请重新输入:")
#位于二级菜单
elif (len(userInput) == 1):
city = input("Enter the city you wanted: ")
#回退到一级菜单
if city == "b":
userInput.pop()
printProvince(Menu)
#退出
elif city == "exit":
break
#进入三级菜单
else:
while True:
try:
printLocals(Menu,province,city)
userInput.append(city)
break
except Exception as e:
city = input("城市名输入错误,请重新输入:")
#位于三级菜单
elif (len(userInput) == 2):
choose = input("enter b to renturn to the previous menu: ")
#回退到二级菜单
if choose == "b":
userInput.pop()
printCities(Menu,userInput[0])
#退出
else:
break
python实现三级菜单间的前后跳转的更多相关文章
- python打怪之路【第三篇】:利用Python实现三级菜单
程序: 利用Python实现三级菜单 要求: 打印省.市.县三级菜单 可返回上一级 可随时退出程序 coding: menu = { '北京':{ '朝阳':{ '国贸':{ 'CICC':{}, ' ...
- python之三级菜单
python之三级菜单 要求: 1. 运行程序输出第一级菜单 2. 选择一级菜单某项,输出二级菜单,同理输出三级菜单 3. 菜单数据保存在文件中 4. 让用户选择是否要退出 5. 有返回上一级菜单的功 ...
- 【python】——三级菜单
作业需求: 打印三级菜单 可返回上一级 可随时退出程序 #!/usr/bin/env python # -*- coding:utf-8 -*- #Author: __Json.Zzgx__ menu ...
- Python学习-------------------三级菜单简单版
题目: 多级菜单 1.三级菜单 2.可依次选择进入的各子菜单 3.所需新知识点:列表.字典 ReadMe: 这个做循环,比较绕脑子 点开运行即可 Min ...
- python作业三级菜单day1(第一周)
一.作业需求: 1. 运行程序输出第一级菜单 2. 选择一级菜单某项,输出二级菜单,同理输出三级菜单 3. 菜单数据保存在文件中 4. 让用户选择是否要退出 5. 有返回上一级菜单的功能 二三级菜单文 ...
- python实现三级菜单源代码
8月4号早晨天气晴,继续学习‘Alex’的python视频,写了用字典实现三级菜单的代码,都是循环和判断比较lower,废话不多说直接贴码: #!/user/bin/env python #-*-co ...
- python 实现三级菜单
要求: 可选择进入各级子菜单 在各级菜单下可以选择退出 在子菜单下可以返回上一级菜单 Readme: 运行程序,输入菜单选项,进入对应的子菜单 # Joe Young data = { '山东':{ ...
- Python入门-三级菜单
作业题目: 三级菜单 作业需求: menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{}, '网易':{}, 'google':{} }, '中关村':{ '爱奇艺':{}, ...
- python 打印三级菜单
要求: 1.用户选择城市菜单编号显示对应的下级菜单 2.可以返回上级菜单,只有在用户确定正常退出时才退出 #!/usr/bin/env python3 # -*- coding: utf-8 -*- ...
随机推荐
- pip使用国内源
对于Python开发用户来讲,PIP安装软件包是家常便饭.但国外的源下载速度实在太慢,浪费时间.而且经常出现下载后安装出错问题.所以把PIP安装源替换成国内镜像,可以大幅提升下载速度,还可以提高安装成 ...
- C# 抽象类和接口的差别
抽象类和接口最终目的:抽象类实现多态化,接口实现功能化.比如汽车:接口就是轮子,发动机,车身等零部件,抽象类则是颜色,款式,型号等参数性东西. 抽象类(abstract): (1) 抽象方法只作声明, ...
- maven中央仓库地址(支持db2,informix等)
maven中央仓库地址(以下设置写在pom.xml文件里): <repositories> <repository> <id>nexus</id> &l ...
- FreeMaker入门介绍
一.FreeMaker介绍 FreeMarker是一款免费的Java模板引擎,是一种基于模板和数据生成文本(HMLT.电子邮件.配置文件.源代码等)的工具,它不是面向最终用户的,而是一款程序员使用的组 ...
- 小程序getLocation出现的各种问题汇总
1.小程序无法弹出授权位置的弹框: 需要在app.json中增加相关配置文件: "permission": { "scope.userLocation": { ...
- 【javascript】数据类型中的一些小知识点
1. undefined 和 null undefined是一个变量而不是一个关键字,所以可以被重新赋值.为了避免歧义,一般推荐用void 0 来获取undefined: null是一个关键字,所以可 ...
- 【分享】用Canvas实现画板功能
前言 PC端测试:QQ浏览器全屏绘画完成.缩小时内容会被清空,切换背景颜色内容会被重置,其他暂无发现: 手机端测试:微信内置浏览器不通过:Safari 浏览器使用画笔时没固定页面会有抖动效果,使用橡皮 ...
- argument 1 must be 2-item sequence, not int
看了 https://blog.csdn.net/qq_18250439/article/details/80872425 的说明,才明白为什么错了. 当使用Python3-pygame时出现Typ ...
- linux jpg文件查找木马
find ./ -type f -name "*.jpg" | xargs grep "eval"
- canvas 实现刮刮乐
在解决问题前,我们先来了解一下 canvas 标签canvas 是 html5 出现的新标签,像所有的 dom 对象一样它有自己本身的属性.方法和事件,其中就有绘图的方法,js 能够调用它来进行绘图. ...