三級選單
阿新 • • 發佈:2020-10-28
三級選單
作業需求
- 可以一層一層的進入到所有層 ;
- 可以在每層返回上一層 ;
- 可以在任意層回退上一層或退出;
# Administrator 2019/6/12 13:41 menu = { '北京':{ '朝陽':{ '國貿':{}, 'CICC':{}, 'HP':{}, '渣打銀行':{}, 'CCTV':{}, }, '望京':{ '陌陌':{}, '賓士':{}, '360':{}, }, '三里屯':{ '優衣庫':{}, 'apple':{}, }, '昌平':{ '沙河':{ '老男孩':{}, '阿泰包子':{}, }, '天通苑':{ '鏈家':{}, '我愛我家':{}, }, '回龍觀':{}, }, '海淀':{ '五道口':{ '谷歌':{}, '網易':{}, 'sohu':{}, '快手':{}, }, '中關村':{ 'youku':{}, 'Iqiyi':{}, '汽車之家':{}, '新東方':{}, 'QQ':{}, }, }, }, '上海':{ '浦東':{ '陸家嘴':{ 'CICC':{}, '高盛':{}, '摩根':{}, }, }, '閔行':{}, '靜安':{}, }, '山東':{ '濟南':{}, '德州':{ '樂陵':{ '丁務鎮':{}, '城區':{}, }, '平原':{}, }, '青島':{}, }, } floor = menu #定義當前層為menu,實現動態迴圈; empty_list = [] #定義一個空列表,儲存所有父級,最後一個元素永遠都是父級; while True: #while True 語句中一定要有結束該迴圈的break語句,否則會一直迴圈下去; for key in floor: print(key) #列印選單內容 #讓使用者選擇輸入,strip() 方法用於移除字串頭尾指定的字元(預設為空格或換行符)或字元序列; choice = input("請輸入地址>>>【返回/b,退出/q】:").strip() if choice == 'q': #判斷如果使用者輸入q,便break跳出迴圈; break #判斷使用者如果輸入的字元長度如果為0,便跳出本次迴圈; if len(choice) == 0 : #len() 方法返回物件(字元、列表、元組等)長度或專案個數。 continue if choice in floor: #如果使用者輸入的是選單裡的內容; #在進入下一層之前,把當前層追加到列表中; #下一次迴圈時,如果使用者輸入b,就可以直接取列表的最後一個值出來; empty_list.append(floor) #append() 方法用於在列表末尾新增新的物件; floor = floor[choice] #改成下一層; elif choice == 'b': #如果使用者輸入b; if empty_list: #判斷列表是否為空; #pop() 函式用於移除列表中的一個元素(預設最後一個元素),並且返回該元素的值 floor = empty_list.pop() #取出列表最後一個值,因為他就是當前層的父級; else: print('您輸入有誤!')