程序需求:
打印省、市、县三级菜单
可返回上一级
可随时退出程序
程序实现思路如下:
省、市、县的三级菜单数据源以列表+字典嵌套的方式储存
使用while循环实现多次交互,while嵌套实现多级菜单打印
使用while循环+标志位实现程序的无限循环和退出
代码如下:
# 城市三级菜单以字典+列表嵌套的方式实现
location = {
‘四川省‘: {‘成都市‘: [‘武侯区‘, ‘青羊区‘, ‘双流区‘], ‘内江市‘: [‘市中区‘, ‘东兴区‘]},
‘湖北省‘: {‘武汉市‘: [‘武昌区‘, ‘江汉区‘, ‘汉阳区‘], ‘荆州市‘: [‘公安县‘, ‘江陵县‘]}
}
# 退出标志位,通过修改标志位退出程序
flag = True
while flag:
# 打印省列表、获取输入
print(‘省列表:‘)
for key in location:
print(key)
a = input(‘请输入你想去的省[退出:quit]:‘)
# 对输入的省做条件判断,并进入对应的循环
if a == ‘quit‘:
flag = False
print(‘成功退出程序.‘)
elif a in location.keys():
# 输入的省份符合条件,进入二级菜单-市
while flag:
location_a = location[a]
print(‘市列表:‘)
for key in location_a:
print(key)
b = input(‘请输入你想去的市[返回上一级:return,退出:quit]:‘)
# 对输入的市做条件判断,并进入对应的循环
if b == ‘quit‘:
flag = False
print(‘成功退出程序.‘)
elif b == ‘return‘:
break
elif b in location_a.keys():
# 输入的市名符合条件,进入三级菜单-区县
while flag:
location_b = location_a[b]
print(‘区列表:‘)
for item in location_b:
print(item)
c = input(‘请输入你想去的区[返回上一级:return,退出:quit]:‘)
if c == ‘quit‘:
flag = False
print(‘成功退出程序.‘)
elif c == ‘return‘:
break
elif c in location_b:
print(‘你想去的县是:%s‘ % c)
while flag:
d = input(‘是否继续[返回上一级:return,退出:quit]:‘)
if d == ‘quit‘:
flag = False
print(‘成功退出程序.‘)
elif d == ‘return‘:
break
else:
print(‘输入有误,请重新输入!‘)
else:
print(‘输入有误,请重新输入!‘)
else:
print(‘输入有误,请重新输入!‘)
else:
print(‘输入有误,请重新输入!‘)
以上
原文:https://www.cnblogs.com/programmer4027/p/14737053.html