python三级菜单

简介:

需求:

1
2
3
4
5
6
7
编写三级菜单
     1. 菜单需求:
         一级菜单:            北京                                  山西
         二级菜单:    朝阳                昌平               长治           大同
         三级菜单:三里屯    工体       沙河  西二旗       潞城  黎城     阳高县  左云县
     2. 任何一级都可以输入b返回上一级,输入q退出。
     3. 知识涵盖字典、列表、 for 循环、 while 循环、字符串格式化

流程图:

wKiom1k2dNaBu5xfAAC5w97DPXA278.png-wh_50

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  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  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 ,如需转载请自行联系原作者



相关文章
|
4月前
|
C++ Java 容器
【Java每日一练】总目录(2023.3.11~5.18)共69篇
【Java每日一练】总目录(2023.3.11~5.18)共69篇
166 0
【Java每日一练】总目录(2023.3.11~5.18)共69篇
|
11月前
|
Python
【Python】多种方法实现打印系统菜单
【Python】多种方法实现打印系统菜单
102 0
|
12月前
|
Python
Python高级进阶#019 pyqt5菜单menu应用,新建多窗体
Python高级进阶#019 pyqt5菜单menu应用,新建多窗体
181 0
|
数据可视化 Python
python小玩意——点菜单程序
python小玩意——点菜单程序
python小玩意——点菜单程序
|
存储 Python 容器
Python各类题型题目(包括三级菜单)
Python各类题型题目(包括三级菜单)
176 0
|
Python
python Day1作业:三层菜单
输入信息三层全部正确,最后退出循环打印最终查询结果 点击(此处)折叠或打开 [t@bjb0541 python]$ ./day12.
767 0