利用所学的知识写一个多级菜单
- 要求:
- 打印省、市、县三级菜单
- 可返回上一级
- 可随时退出程序
- 代码演示
# 定义一个包含(省,市,县)3级嵌套字典
region = {
"陕西":{
"西安":{
"大雁塔":[
"音乐喷泉"],
"小雁塔": [
"小吃街"
]
},
"咸阳":{
"长武":[
"苹果"
],
"永寿":[
"法门寺"
]
}
},
"上海":{
"浦东":{
"野生动物园":[
"狮子"
]
},
"徐汇":{
"外滩":[
"东方明珠"
]
},
"宝山":{
"九亭":[
"欢乐谷"
]
}
},
"北京":{
"朝阳":{
"双桥路":[
"和美国际大酒店"
]
},
"西城":{
"天安门":[
"故宫"
]
},
}
}
# print(region["上海"]["浦东"]["野生动物园"])
# 定义一个变量,值为False
exit_false = False
# 使用while循环,while not exit_false: 等于 while True;
while not exit_false:
# 循环打印字典的第一级(也就是取出字典第一层的key值)
for x in region:
print(x) # >>> 陕西,上海,北京
# 输入字符
input_1 = input("请选择省:")
# 判断是否存在输入的字符
if input_1 in region:
while not exit_false:
# 在的话打印第一层
for x1 in region[input_1]:
print("\t", x1)
# 输入字符
input_2 = input("请选择市: ")
# 判断是否存在输入的字符
if input_2 in region[input_1]:
while not exit_false:
# 如果在,打印第二层
for x2 in region[input_1][input_2]:
print("\t\t", x2)
# 输入字符
input_3 = input("请选择区:")
# 判断是否存在输入的字符
if input_3 in region[input_1][input_2]:
while not exit_false:
# 如果在,打印第三层
for x3 in region[input_1][input_2][input_3]:
print("\t\t\t", x3)
input_4 = input("已到最后一级,输入b返回上一层,输入q退出!")
# 按b返回上一层
if input_4 == "b":
break
# 按q退出
elif input_4 == "q":
exit_false = True
if input_3 == "b":
break
elif input_3 == "q":
exit_false = True
if input_2 == "b":
break
elif input_2 == "q":
exit_false = True
if input_1 == "b":
print("已到第一层,不能再到上一步!")
elif input_1 == "q":
exit_false = True
- 代码运行
F:\python3>python test.py
陕西
上海
北京
请选择城市:陕西
西安
咸阳
请选择地区: 咸阳
长武
永寿
请选择县城:长武
苹果
已到最后一级,输入b返回上一层,输入q退出!
长武
永寿
请选择县城:b
西安
咸阳
请选择地区: b
陕西
上海
北京
请选择城市:b
已到第一层,不能再到上一步!
陕西
上海
北京
请选择城市:q