三级菜单的三个版本

1.这是我们通过一般方式进行的,就是按照正常的思路来写的,一步一步走

 1 #_author:sangshijia
 2 #date:2016/8/24
 3 menu_map={
 4     "河南":{
 5         "郑州":["新密","登封","中牟"],
 6         "洛阳":["汝阳","伊川","嵩县"],
 7         "南阳":["西峡","方城","内乡"],
 8     },
 9     "河北":{
10         "保定":["顺平","曲阳","徐水"],
11         "邢台":["临城","清河","新河"],
12         "邯郸":["广平","鸡泽","肥乡"],
13     },
14     "安徽":{
15         "合肥":["长丰","肥东","肥西"],
16         "毫州":["蒙城","利辛","涡阳"],
17         "滁州":["凤阳","来安","定远"],
18     },
19 
20 }
21 flag=True
22 while True:
23     for key in menu_map:
24         print(key)
25     choice=input("1,请输入省份,b返回上一级目录,d删除省份>>>:").strip()
26     if choice =="b":
27         break
28         print("返回上一级目录")
29     if choice =="d":
30         choice_del=input("请输入需要删除的省份:").strip()
31         del menu_map[choice_del]
32     elif choice in menu_map:
33         while True:
34             for key2 in menu_map[choice]:
35                 print(key2)
36             choice2 = input("2,请输入市,b返回上一级目录,d删除市>>>:").strip()
37             if choice2 =="b":
38                 break
39                 print("返回上一级目录")
40             if choice2 =="d":
41                 choice_del = input("请输入需要删除的市:").strip()
42                 del menu_map[choice][choice_del]
43             elif choice2 in menu_map[choice]:
44                 while True:
45                     for key3 in menu_map[choice][choice2]:
46                         print(key3)
47                     choice3=input("3,请输入县,b返回上一级目录,d删除县>>>:").strip()
48                     if choice3 =="b":
49                         break
50                         print("返回上一级目录")
51                     if choice3 =="d":
52                         choice_del = input("请输入需要删除的县:").strip()
53                         del menu_map[choice][choice2][choice3]
54                     elif choice3 in menu_map[choice][choice2]:
55                         print("last level")
56                     elif choice3 not in menu_map[choice][choice2]:
57                         choice3 = input("请输入添加的县>>:").strip()
58                         menu_map[choice][choice2][choice3]={}
59             elif choice2 not in menu_map[choice]:
60                 choice2 = input("请输入添加的市>>:").strip()
61                 menu_map[choice][choice2] = {}
62     elif choice not in menu_map:
63         choice = input("请输入添加的省>>:").strip()
64     menu_map[choice] = {}

2.这是简便后的,代码少了很多,就是把上一部分的一些重复代码 简化而成的

 1 #_author:sangshijia
 2 #date:2016/8/26
 3 menu={
 4     "河南":{
 5         "郑州":["新密","登封","中牟"],
 6         "洛阳":["汝阳","伊川","嵩县"],
 7         "南阳":["西峡","方城","内乡"],
 8     },
 9     "河北":{
10         "保定":["顺平","曲阳","徐水"],
11         "邢台":["临城","清河","新河"],
12         "邯郸":["广平","鸡泽","肥乡"],
13     },
14     "安徽":{
15         "合肥":["长丰","肥东","肥西"],
16         "毫州":["蒙城","利辛","涡阳"],
17         "滁州":["凤阳","来安","定远"],
18     },
19 
20 }
21 import sys
22 current_layer=menu
23 parent_layers=[]
24 while True:
25     for key in current_layer:
26         print(key)
27     choice=input(">>>:").strip()
28     if len(choice)==0:continue
29     if choice in current_layer:
30         parent_layers.append(current_layer)
31         current_layer=current_layer[choice]
32     elif choice=="b":
33         if parent_layers:
34             current_layer=parent_layers.pop()
35     else:
36         print("无此项")

3.通过文件把menu_map中的内容存储到新建的一个文件aaa里面,这样就可以把menu_map这一段内容注释掉,通过调用新文件aaa来执行,同时呢,也熟悉了文件的一些操作

,同时也添加了增加和删除这2个功能,但是我只能用老方法来实现文件的加入,

 1 #_author:sangshijia
 2 #date:2016/8/24
 3 #f=open('menu_map',encoding='utf8')
 4 # menu_map={
 5 #     "河南":{
 6 #         "郑州":["新密","登封","中牟"],
 7 #         "洛阳":["汝阳","伊川","嵩县"],
 8 #         "南阳":["西峡","方城","内乡"],
 9 #     },
10 #     "河北":{
11 #         "保定":["顺平","曲阳","徐水"],
12 #         "邢台":["临城","清河","新河"],
13 #         "邯郸":["广平","鸡泽","肥乡"],
14 #     },
15 #     "安徽":{
16 #         "合肥":["长丰","肥东","肥西"],
17 #         "毫州":["蒙城","利辛","涡阳"],
18 #         "滁州":["凤阳","来安","定远"],
19 #     },
20 #
21 # }
22 # new_menu=str(menu_map)
23 # f=open("aaa","w",encoding='utf8')
24 # f.write(new_menu)
25 # f.close()
26 f=open("aaa","r",encoding='utf8')
27 menu_map=f.read()
28 menu_map=eval(menu_map)
29 flag=True
30 while True:
31     for key in menu_map:
32         print(key)
33     choice=input("1,请输入省份,b表示返回上一级目录,d表示删除省份>>>:").strip()
34     if choice =="b":
35         break
36         print("返回上一级目录")
37     if choice =="d":
38         choice_del=input("请输入需要删除的省份:").strip()
39         del menu_map[choice_del]
40     elif choice in menu_map:
41         while True:
42             for key2 in menu_map[choice]:
43                 print(key2)
44             choice2 = input("2,请输入市,b表示返回上一级目录,d表示删除市>>>:").strip()
45             if choice2 =="b":
46                 break
47                 print("返回上一级目录")
48             if choice2 =="d":
49                 choice_del = input("请输入需要删除的市:").strip()
50                 del menu_map[choice][choice_del]
51             elif choice2 in menu_map[choice]:
52                 while True:
53                     for key3 in menu_map[choice][choice2]:
54                         print(key3)
55                     choice3=input("3,请输入县,b表示返回上一级目录,d表示删除县>>>:").strip()
56                     if choice3 =="b":
57                         break
58                         print("返回上一级目录")
59                     if choice3 =="d":
60                         choice_del = input("请输入需要删除的县:").strip()
61                         del menu_map[choice][choice2][choice3]
62                     elif choice3 in menu_map[choice][choice2]:
63                         print("last level")
64                     elif choice3 not in menu_map[choice][choice2]:
65                         choice3 = input("请输入添加的县>>:").strip()
66                         menu_map[choice][choice2][choice3]={}
67             elif choice2 not in menu_map[choice]:
68                 choice2 = input("请输入添加的市>>:").strip()
69                 menu_map[choice][choice2] = {}
70     elif choice not in menu_map:
71         choice = input("请输入添加的省>>:").strip()
72     menu_map[choice] = {}

 

转载于:https://www.cnblogs.com/mars527/p/5843763.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/356806.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java实现细胞自动机_Java自动机实现

java实现细胞自动机这篇文章将解决在Java中实现有限状态机的问题。 如果您不知道什么是FSM或在什么地方可以使用FSM,您可能会热衷于阅读本 , 本和本 。 如果您发现自己在设计上使用FSM的情况,则可能已经开始为实现相同接口的每个状态编写类。…

代理设计模式示例

本文是我们名为“ Java设计模式 ”的学院课程的一部分。 在本课程中,您将深入研究大量的设计模式,并了解如何在Java中实现和利用它们。 您将了解模式如此重要的原因,并了解何时以及如何应用模式中的每一个。 在这里查看 ! 目录 …

调研《构建之法》指导下的历届作品

项目名称:未视APP学校:吉首大学团队:北京必趣科技有限公司 简介:发现未知的视界http://plus.jlu.edu.cn/item.php?id377 延续电影瞬间的感动,发现视界未知的温暖 理由:无优势,很多劣势,可是延续电影瞬间的感动&#x…

java图形旋转动画_Java动画:旋转图像

我将假设您了解如何旋转图像一次.如果你不这样做,你可以通过快速谷歌搜索找到它.您需要的是一个为您旋转它的后台进程.它的工作原理如下:/*** Warning - this class is UNSYNCHRONIZED!*/public class RotatableImage {Image image;float currentDegrees;public Rot…

java golang速度_golang思考之运行速度

有些资料显示golang的运行速度很慢,比Java慢,有时比Python慢。学习吧测试发现golang的运行速度和Java差不多。首先,使用各种语言编写同一个CPU密集的程序sum。C(或C)#include #include #include int main(void){int iN;int64_t jN;scanf(&quo…

java 中的正则表达式_Java中的正则表达式–软介绍

java 中的正则表达式正则表达式是一种可以应用于文本(Java中的String)的模式。 Java提供了java.util.regex包,用于与正则表达式进行模式匹配。 Java正则表达式与Perl编程语言非常相似,并且非常易于学习。 正则表达式匹配文本&…

HTML5移动端触摸事件

工作了近一个月了 因为公司是主要偏向于移动端,开始不懂移动端事件 一直用的click click在安卓端没有什么问题 但在IOS端就有问题了点击之后会延迟半秒 多亏旁边大神指点 原来 iOS上的Safari也支持click 和mouseover等传统的交互事件,只是不推荐在iOS…

用java写的教职工信息管理系统_基于Java的教师信息管理系统的设计与实现论文.doc...

基于Java的教师信息管理系统的设计与实现论文职场大变样社区():下载毕业设计成品全套资料,全部50元以下毕业设计(论文)任务书第1页毕业设计(论文)题目:基于java的教师信息管理系统的设计与实现毕业设计(论文)要求及原始数据(资料)&#xff1a…

春云边车

我有一个部署到基于NetflixOSS的云的应用程序,该应用程序具有以下结构: 本质上是一种将信息持久保存到Cassandra群集的服务。 所有应用程序都已注册到Eureka –因此,在本例中,该服务以及Cassandra节点都已在Eureka中注册&#xf…

java json写入内存_如何在客户端上减少JSON.stringify使用的内存量?

使用JSON.stringify将大型javascript对象转换为字符串时,有没有办法减少客户端上的内存使用量?我正在寻找解决下面问题的东西,但是对于客户端上的javascript .当我尝试一个简单的JSON.stringify(big_object)时,它会迅速占用所有RA…

GridView的一些常用属性:

GridView的一些常用属性:android:numColumns”auto_fit” //GridView的列数设置为自动android:columnWidth”90dp " //每列的宽度,也就是Item的宽度android:stretchMode”columnWidth" //缩放与列宽大小同步android:verticalSpacing…

activemq端口好_ActiveMQ已准备好黄金时段

activemq端口好ActiveMQ项目始于2005年-在很大程度上,它一直是Apache Software Foundation的顶级项目。 ActiveMQ项目的目的一直是提供世界一流的企业消息传递解决方案,使经纪人能够提供从支持IP的智能设备一直到企业后端的高可用性的连通性。 ActiveMQ提…

js创建节点,小试牛刀

实现如下的功能 非常简单的一个小训练。 思想&#xff1a; 1.首先创建text和一个button 代码如下、 1 <body> 2 <input type"text" id"text1"/> 3 <input id"btn1" type"button" value"创建" /> 4 <u…

java 8是指什么_java中8个基本数据类型到底是指什么?是什么意思,有什么作用?我需要权威的回答,...

在java中一共有八种基本数据类型&#xff0c;他们分别是byte、short、int、long、float、double、char、boolean整型其中byte、short、int、long都是表示整数的&#xff0c;只不过他们的取值范围不一样byte的取值范围为-128~127&#xff0c;占用1个字节(-2的7次方到2的7次方-1)…

企业讯息

本文是我们名为“ Spring Integration for EAI ”的学院课程的一部分。 在本课程中&#xff0c;向您介绍了企业应用程序集成模式以及Spring Integration如何解决它们。 接下来&#xff0c;您将深入研究Spring Integration的基础知识&#xff0c;例如通道&#xff0c;转换器和适…

php生成txt文件_php 批量生成html,txt文件的实现代码

本篇文章是对使用php批量生成html,txt文件的实现代码进行了详细的分析介绍&#xff0c;需要的朋友参考下首先建立一个conn.php的文件用来链接数据库$link mysql_connect("mysql_host" , "mysql_user" , "mysql_password" )or die("Could n…

HDU 3665 Seaside

题目链接&#xff1a; http://acm.split.hdu.edu.cn/showproblem.php?pid3665 Problem DescriptionXiaoY is living in a big city, there are N towns in it and some towns near the sea. All these towns are numbered from 0 to N-1 and XiaoY lives in the town numbered…

Spring MVC 学习笔记一 HelloWorld

Spring MVC 学习笔记一 HelloWorld Spring MVC 的使用可以按照以下步骤进行&#xff08;使用Eclipse&#xff09;&#xff1a; 加入JAR包在web.xml中配置DispatcherServlet加入Spring MVC的配置文件编写处理请求的处理器&#xff0c;并添加对应注解编写视图下面按照国际惯例先来…

php 避免xss_PHP防止XSS注入

我们在做网站的时候&#xff0c;经常有input提交&#xff0c;通常前端对input中的内容不做判断&#xff0c;只做不为空等简单的操作。但是&#xff0c;有的input中会提交一些javascript或者html,会给网站造成一定的危害。为此&#xff0c;防止XSS注入的任务交给了后端&#xff…

为什么选择Docker?

容器并不是什么新鲜事物&#xff0c;但是实现它们总是比需要的要复杂一些。 Docker在简化容器方面取得了长足的进步&#xff0c;并从此引爆了整个世界。 让我们看看为什么。 为什么Docker成为家喻户晓的名字 Docker不是很老。 2014年5月&#xff0c;当我写了一篇煽动性博客文章…