利用所學的知識寫一個多級菜單
- 要求:
- 列印省、市、縣三級菜單
- 可傳回上一級
- 可随時退出程式
- 代碼示範
# 定義一個包含(省,市,縣)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