python三级菜单
需求:
1
2
3
4
5
6
7
|
编写三级菜单 1. 菜单需求:
一级菜单: 北京 山西
二级菜单: 朝阳 昌平 长治 大同
三级菜单:三里屯 工体 沙河 西二旗 潞城 黎城 阳高县 左云县
2. 任何一级都可以输入b返回上一级,输入q退出。
3. 知识涵盖字典、列表、 for 循环、 while 循环、字符串格式化
|
流程图:
python代码
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
|
#!/bin/bash/env python #python3.X #定义三级菜单字典zone zone = {
'北京' :{
'朝阳' :[ '三里屯' , '工体' ],
'昌平' :[ '沙河' , '西二旗' ]
},
'山西' :{
'长治' :[ '潞城' , '黎城' ],
'大同' :[ '阳高县' , '左云县' ]
}
} #定义省级列表 province_list = list (zone.keys())
#打印省级列表循环 while True :
print ( "欢迎光临省级列表" .center( 20 , '-' ))
#循环省级列表
for i in province_list:
#打印省级列表序号和省级名称
print (province_list.index(i) + 1 ,i)
#提示输入
p1 = input ( "请选择序号:例:1 [输入q:退出]" )
#判断输入的是否全是数字
if p1.isdigit():
#如果输入的是数字,用int进行强制转换成整形
p1 = int (p1)
#如果p1 大于0或者小于等于省级列表的参数数量
if p1 > 0 and p1 < = len (province_list):
#求出省级名称
province_name = province_list[p1 - 1 ]
#求出省级下边的市级列表
city_list = list (zone[province_name].keys())
#打印市级列表循环
while True :
print ( "欢迎光临市级列表" .center( 20 , '-' ))
#循环市级列表
for c in city_list:
#打印市级列表序号和市级列表名称
print (city_list.index(c) + 1 ,c)
#提示输入
c1 = input ( "请选择序号:例:1 [输入b:返回上一级][输入q:退出]" )
#判断是否输入的是数字
if c1.isdigit():
c1 = int (c1)
#如果输入的序号在市级列表序列之内,打印列表,不在,告知不在。
if c1 > 0 and c1 < = len (city_list):
#求出市级列表的名称
city_name = city_list[c1 - 1 ]
#求出市级下边的县级列表:
county_list = list (zone[province_name][city_name])
#县级列表循环
while True :
print ( "欢迎光临县级列表" .center( 20 , "-" ))
#循环县级列表
for c2 in county_list:
#打印县级列表
print (county_list.index(c2) + 1 ,c2)
#提示输入
c2 = input ( "请输入相应符号:[输入b:返回上一级][输入q:退出]" )
#如果输入是b 退出这个循环
if c2 = = "b" :
break
#如果输入的是q 退出整个循环
elif c2 = = "q" :
#exit() 代表退出整个循环
exit()
#如果输入的不是b、q 就提示重新输入
else :
print ( "\033[31m输入错误,Please re-enter!\033[0m" )
else :
print ( "\n输入的序号%d不在此列表中!Please RE-enter!\n" % c1)
#如果输入的是b 退出这个循环
elif c1 = = "b" :
break
#如果输入的是q 退出整个程序
elif c1 = = "q" :
exit()
#如果输入的不是数字、b 、q 那么提示 重新输入
else :
print ( "\033[31m输入错误,Please re-enter!\033[0m" )
else :
print ( "\n输入的%d不在此列表中!Please RE-enter!\n" % p1)
#如果不是数字,看是否是 字母q
elif p1 = = "q" :
#如果是q 执行exit()退出整个程序
exit()
#如果输入的不是数字和q,提示重新输入
else :
print ( "\033[31m输入错误,Please re-enter!\033[0m" )
|
本文转自506554897 51CTO博客,原文链接:http://blog.51cto.com/506554897/1932872,如需转载请自行联系原作者