作業2:多級菜單
三級菜單
可依次選擇進入各子菜單
所需新知識點:列表、字典
1、流程圖

2、登錄界面,輸入對應索引
#!/usr/bin/env python3
# -*- coding:utf-8 -*-
# Version:Python3.5.0
# 初始化城市信息
city_dict = {'廣州': {'天河': ['天河體育館', '金山大夏'],
'越秀': ['越秀公園', '光孝寺'],
'番禺': ['長隆歡樂世界', '大夫山']},
'深圳': {'福田': ['蓮花山', '賽格'],
'龍華': ['元山公園', '龍城廣場'],
'南山': ['世界之窗', '歡樂谷']},
'佛山': {'禪城': ['梁園', '孔廟'],
'南海': ['千燈湖', '南國桃園'],
'順德': ['清暉園', '西山廟']}}
# 創建城市索引列表
city_index = [(index, key) for index, key in enumerate(city_dict)]
city_index.append((len(city_index), '退出')) # 增加退出選項
while True:
print('歡迎查詢城市信息')
print('--------------------------------')
for i in city_index: # 打印城市索引菜單
for j in i:
print(j, end=' ')
print('')
get_city = input('請選擇查詢的索引號:')
if not get_city.isdigit():
print('請輸入一個數字索引號。')
continue
elif int(get_city) >= len(city_index): # 輸入索引號大於等於城市索引號長度
print('輸入的數字太大,請重輸入。')
continue
elif int(get_city) == len(city_index)-1: # 最大的索引號為 退出程序對應的索引號
print('歡迎再次登錄,bye bye!')
break
else:
choose_city = city_index[int(get_city)][1] # 獲取選擇的城市名稱
# 創建 區 的索引列表
area_index = [(index, key) for index, key in enumerate(city_dict[choose_city])]
area_index.append((len(area_index), '返回')) # 增加返回上一級菜單選項
while True:
for i in area_index: # 打印選擇城市的區索引菜單
for j in i:
print(j, end=' ')
print('')
get_area = input('請選擇查詢的索引號:')
if not get_area.isdigit():
print('請輸入一個數字索引號。')
continue
elif int(get_area) >= len(area_index): # 輸入索引號大於城市索引號
print('輸入的數字太大,請重輸入。')
continue
elif int(get_area) == len(area_index)-1: # 最大的索引號為 上級菜單對應的索引號
print('返回到上一級菜單。')
break
else:
choose_area = area_index[int(get_area)][1] # 獲取選擇區的名稱
print(city_dict[choose_city][choose_area]) # 打印該區的信息
print('--------------------------------')
