- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章使用python实现省市三级菜单效果由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
地区分三层结构例如
大中华地区一级划分
华东 。
华中 。
华北 。
西南 。
特别行政区 。
华南 。
------------------------------------------------- 。
请输入你要查看的大中华地区名字:华中 。
------------------包含的省名字二级:----------------- 。
湖北 。
湖南 。
河南 。
------------------------------------------------- 。
请输入你要查看的省名字:湖北 。
--------------包含的城市名三级:------------------- 。
程序大概的思路和逻辑
1 将大中华地区划用字典列表来构造,用key取省或者地市列表,用for遍历显示字典或者列表的元素 。
2 根据整个字典的key,得到省列表,遍历打印省的名字列表 。
3 设置用于跳出外循环的flag(跳出嵌套循环) 。
4 两层嵌套循环,外循环for指定3次固定循环,3次输入省名字错误,程序退出(在外循环for后,通过else来实现) 。
内循环while True是死循环,不指定次数(地市名字输入错误后,会一直要求输入,直到输入正确为止),通过break退出内循环 。
5 通过整个字典的key得到省列表,通过省字典的key得到地市列表,遍历打印地市的名字列表 。
6 判断输入的地市是否在省字典中,在的话,通过省字典的key,for遍历打印城市的名字列表不在的话,提示"输入的省名字不对,请重新输入",continue跳出当次迭代(循环),继续输入省名字还在内循环while中 。
7 打印城市表后,2个选择,1是退出整个程序(2个嵌套循环都退出),2是回到上一级别菜单(只需要退出内循环的当前迭代) 。
8 回到上一级别菜单(只退出内循环while) 判断用户输入的是否是"b",是的话,continnue 退出内循环的当前迭代,开始内循环下次迭代 。
9 退出整个程序(2个嵌套循环都退出) 判断用户输入的是否是"q",是的话,先将flag变成True,然后break退出while内循环 。
10 再做一个判断,判断flag是否是True,如果是的话,break退出for外循环,至此,退出整个程序(2个嵌套循环都退出) 。
流程图
代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
#!/user/binenv python3
# -*- coding:utf-8 -*-
'''
Created on: 2015年1月16日
@author: 吕毅
Email: 371725153@qq.com
Version: 1.0
'''
china_map
=
{
"华南"
:{
"广东"
:[
"广州市"
,
"佛山市"
,
"深圳市"
,
"东莞市"
],
"广西"
:[
"南宁市"
,
"柳州市"
,
"桂林市"
,
"北海市"
],
"海南"
:[
"海口市"
,
"三亚市"
,
"三沙市"
,
"儋州市"
]
},
"华东"
:{
"上海"
:[
"黄浦区"
,
"卢湾区"
,
"徐汇区"
,
"长宁区"
,
"普陀区"
],
"安徽"
:[
"合肥市"
,
"芜湖市"
,
"淮南市"
,
"马鞍山市"
],
"江苏"
:[
"南京市"
,
"无锡市"
,
"徐州市"
,
"常州市"
,
"苏州市"
]
},
"华北"
:{
"北京"
:[
"东城区"
,
"西城区"
,
"朝阳区"
,
"丰台区"
,
"石景山区"
,
"海淀区"
],
"山西"
:[
"太原市"
,
"大同市"
,
"阳泉市"
,
"长治市"
],
"河北"
:[
"石家庄市"
,
"唐山市"
,
"秦皇岛市"
,
"邢台市"
]
},
"华中"
:{
"湖北"
:[
"武汉市"
,
"黄石市"
,
"十堰市"
,
"十堰市"
],
"河南"
:[
"郑州市"
,
"开封市"
,
"洛阳市"
,
"平顶山市"
],
"湖南"
:[
"长沙市"
,
"株洲市"
,
"衡阳市"
,
"邵阳市"
]
},
"西南"
:{
"重庆"
:[
"万州区"
,
"涪陵区"
,
"渝中区"
,
"大渡口区"
],
"四川"
:[
"成都市"
,
"自贡市"
,
"攀枝花市"
,
"德阳市"
],
"贵州"
:[
"贵阳市"
,
"六盘水市"
,
"遵义市"
,
"安顺市"
],
},
"特别行政区"
:{
"香港"
:[
"屯门"
,
"弯仔"
,
"北角"
,
"西贡"
],
"澳门"
:[
"花地玛堂区"
,
"圣安多尼堂区"
,
"大堂区"
,
"望德堂区"
],
},
}
print
(
"-------------------------------------------------"
)
print
(
"+ +"
)
print
(
"+ +"
)
print
(
"+ 欢迎来到大中华地区查询系统地 +"
)
print
(
"+ +"
)
print
(
"+ +"
)
print
(
"-------------------------------------------------"
)
print
(
"大中华地区一级划分:"
)
for
i
in
china_map:
#遍历字典的key,列出大中华地区的名字
print
(i)
print
(
"-------------------------------------------------"
)
jump_flag
=
False
#用于跳出外循环
for
i
in
range
(
3
):
#外循环,指定循环3次,3次外循环完了,就退出程序
greater_china_name
=
input
(
"请输入你要查看的大中华地区名字:"
)
if
greater_china_name
in
china_map:
#检查输入的地区是否在地图中,如果地区名字3次输入错误,程序退出
gc_name
=
china_map[greater_china_name]
province_name
=
gc_name.keys()
#使用输入的信息作为key,取出省信息,存在字典中
while
True
:
#内循环,死循环,不指定循环次数,通过break或者flag跳出
print
(
"------------------包含的省名字二级:-----------------"
)
#分隔线
for
i
in
province_name:
#遍历列表,取出省名字,打印出来
print
(i)
print
(
"-------------------------------------------------"
)
#分隔线
sheng_name_input
=
input
(
"请输入你要查看的省名字:"
)
if
sheng_name_input
in
province_name:
#判断输入的省名字是否在地区列表中
shi_name
=
china_map[greater_china_name][sheng_name_input]
#取出省中有哪些市,存在列表中
print
(
"--------------包含的城市名三级:-------------------"
)
#分隔线
for
i
in
shi_name:
#遍历列表,取出地区市名字,打印出来
print
(i)
print
(
"------------------------------------------------"
)
#分隔线
if
sheng_name_input
not
in
province_name:
#如果输入的省名字不在在地区列表中
print
(
"输入的省名字不对,请重新输入"
)
continue
#跳出当次迭代,开始下一次迭代循环,直到地市名字输入正确为止(不停的要求输入)
back_or_quit
=
input
(
"请问是否退出?按b:Back是返回上一级菜单;按q:Exit是退出整个程序"
)
#显示完地区市后,就要退出程序了,一个是全部退出,一个是返回上一级菜单
if
back_or_quit
=
=
"q"
:
jump_flag
=
True
#用于跳出外循环
break
#跳出while内循环
if
back_or_quit
=
=
"b"
:
continue
# 跳出当次迭代,开始下一次迭代循环,重新输入省处,返回上一步
print
(
"你输入的信息有误,请重新输入"
)
if
jump_flag:
#跳出外循环的条件满足
break
#跳出外循环
else
:
#上面的3次for循环正常执行完毕,else才会执行,如果是不正常退出(break),else不会执行
print
(
"3次输入错误,程序退出"
)
|
。
最后此篇关于使用python实现省市三级菜单效果的文章就讲到这里了,如果你想了解更多关于使用python实现省市三级菜单效果的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
使用 Foundation 6.3.1,我希望在桌面上显示 Canvas 外菜单,在移动设备上显示 Accordion 菜单。例如 This is the desktop view with a co
function HideandUNhideObj(ThisObj) { var nav = document.getElementById(ThisObj).style if (nav.displ
我正在处理一个页面,该页面有一个显示“更新”的链接。当用户单击此链接时,我希望表单使用幻灯片效果并显示在链接下方。提交表单后,它会更新数据库,并且菜单会显示。 我知道这可以用 JavaScript 来
这是我的运行时创建菜单的关键部分: GtkWidget *menu, *menu_item; menu = gtk_menu_new(); menu_item = gtk_image_menu_ite
您好,我想实现一个像这样的 donut 菜单 http://dribbble.com/shots/610433-Wheel-Nav我知道有一种在 css3 中制作 donut 的简单方法。 .doug
我的应用程序中有一个菜单,当菜单打开时我会触发触觉反馈(来自 onTagGesture Action )。 然而 有时当我点击菜单打开触发器时,菜单实际上不会打开,但我仍然收到触觉反馈。我只在菜单实际
也许这是一个简单的解决方案,但我坚持了下来。 这里有我的代码 http://jsbin.com/ejomuv纯CSS菜单 我想要做的是在悬停时在下拉按钮底部设置 0px 边框半径,但仅在下拉菜单上设置
下拉列表、菜单和组合框都是非常常见的用户界面元素。用户习惯于在 native 应用程序和 Web 应用程序中看到这些元素,但它们存在一些问题。 您必须瞄准鼠标。当您将鼠标移开时,有些菜单会折叠,而有些
我有 codeigniter 背景。现在,我正在学习 Laravel。所以,我处于这种情况(示例),我正在尝试创建一个具有多个用户的 web 应用程序。用户类型 A ,他们可以访问菜单 a、菜单 b
我正在学习 JQuery 的基础知识,我的老师显示的 menu() 看起来根本不像我的。 这是我创建的菜单的 LAF: 代码: Hello Hi Welcome World
- SELECT - 上面的显示:none不起作用。我也尝试过“隐藏”,但没有成功。 如何隐藏此选择菜单? 最佳答案 换行与 或并将 id 添加到标签。 - SELECT
我使用 Jquery 创建菜单,如下所示: homeinfo2info3 Jquery 代码如下: $(document).ready(function(){ $(".prof_info1").unb
我是 C 新手,我需要为项目构建一个带有循环的菜单。我有两个问题。 1) 我想在 else 中添加一个字符,如果在主菜单中按“2”后询问某事,问题将是“你要去参加事件吗?”用户可以输入聊天“Y”或“N
大家好,过去几个小时我一直在为类(class)编写这个程序,但似乎无法解决最后两个问题。它基本上是一个略微修改的 CashRegister 类,通过菜单提供基本功能。我遇到的问题是: 1) 用户第一次
List studentInfo = new LinkedList(); int choice; boolean flag = true; Student student =
我正在使用 bootsrap 4 alpha 6 和 midnight.js 来更改导航菜单切换器的颜色。我想在它旁边插入一个文本(菜单)。捕获中的示例。对于文本切换器,我使用 fontawesome
我正在尝试使用 CSS 菜单解决菜单在 IE 6 中无法正确显示的问题 alt text http://content.screencast.com/users/Dokmanc/folders/Jin
我无法让这段代码工作 - 我想要的是当我将鼠标悬停在圆圈上时,菜单会出现,然后如果我将鼠标从圆圈或菜单上移开,它就会消失。我尝试做的任何事情都是非常错误的,例如 onmouseover 在圆圈上然后在
我有一个典型的 CSS 顶部导航,当您滑过不同的父菜单项时,它会显示一个子菜单。如何更改代码以保持显示事件子菜单。因此,如果您在该父菜单项或其子项之一的页面上,它将保持显示该子菜单,除非您将鼠标悬停在
我很亲近。我怎样才能在我的 上有 MENU 1。 fiddle显示为默认菜单选项,然后在 MENU 2 悬停时更改? 提前致谢。继续编码! :) 最佳答案 要根据您的响应完全远离 jquery 进行编
我是一名优秀的程序员,十分优秀!