------------恢復內容開始------------app
三級菜單要求:
1.能夠一層一層的進入到全部層;
2.能夠在每一層返回上一層;輸入b
3.能夠在任意層退出 主菜單;輸入q
#初級:(原始代碼)
#__author:"hanhankeji" #date: 2019/12/11 menu = { "北京":{ "朝陽":{ "國貿":{ "CICC":{}, "hp":{}, "CCTV":{}, }, }, "望京":{ "momo":{}, "奔馳":{}, "360":{}, "聯邦":{}, }, "三里屯":{ "優衣庫":{}, "大使館":{}, "酒吧":{}, "蘋果":{}, }, "昌平":{ "沙河":{ "老男孩":{}, "包子鋪":{}, }, "天通苑":{ "鏈家":{}, "我愛我家":{}, "汽修廠":{}, }, "回龍觀":{}, "海定":{ "五道口":{ "谷歌":{}, "搜狐":{}, "網易":{}, "搜狗":{}, "快手":{}, "清華":{}, "北大":{}, }, "中關村":{ "優酷":{}, "愛奇藝":{}, "騰訊":{}, "汽車之家":{}, "新東方":{}, "炸雞店":{}, "南翔":{}, }, }, }, }, "上海":{ "浦東區":{ "陸家嘴":{ "CICC":{}, "高盛":{}, "摩根":{}, }, "外灘":{}, "東方明珠":{}, }, "閘北區":{}, "黃浦區":{}, "徐彙區":{}, "嘉定區":{}, }, "山東":{ "濟南":{ "市中區":{}, "歷下區":{}, "天橋區":{}, "桂英渠":{}, "長清區":{}, }, "德州":{}, "青島":{}, "泰安":{}, "棗莊":{}, }, "江蘇":{ "南京市":{}, "蘇州市":{}, "常州":{}, "張家港市":{}, "大豐市":{}, }, "重慶":{}, "浙江":{}, } back_flag = False exit_falg = False while not back_flag and not exit_falg : for i in (menu): print(i) choice = input("輸入你的省>>:").strip() if choice == "q": exit_falg = True if choice in menu : while not back_flag and not exit_falg: for j in menu[choice]: print(j) choice2 = input("輸入你的縣級>>:").strip() if choice2 == "q": exit_falg = True if choice2 == "b": back_flag = True if choice2 in menu[choice]: while not back_flag and not exit_falg: for k in menu[choice][choice2]: print(k) choice3 = input("輸入你的市級>>:") if choice3 == "q": exit_falg = True if choice3 == "b": back_flag = True if choice3 in menu[choice][choice2]: while not back_flag and not exit_falg: for l in menu[choice][choice2][choice3]: print(l) choice4 = input("輸入區級>>:").strip() print(" last leavel!") if choice4 == "b" : back_flag = True if choice4 == "q" : exit_falg = True else: back_flag =False else: back_flag = False else: back_flag = False
高級版本:oop
#__author:"hanhankeji" #date: 2019/12/17 menu = { "北京":{ "朝陽":{ "國貿":{ "CICC":{}, "hp":{}, "CCTV":{}, }, }, "望京":{ "momo":{}, "奔馳":{}, "360":{}, "聯邦":{}, }, "三里屯":{ "優衣庫":{}, "大使館":{}, "酒吧":{}, "蘋果":{}, }, "昌平":{ "沙河":{ "老男孩":{}, "包子鋪":{}, }, "天通苑":{ "鏈家":{}, "我愛我家":{}, "汽修廠":{}, }, "回龍觀":{}, "海定":{ "五道口":{ "谷歌":{}, "搜狐":{}, "網易":{}, "搜狗":{}, "快手":{}, "清華":{}, "北大":{}, }, "中關村":{ "優酷":{}, "愛奇藝":{}, "騰訊":{}, "汽車之家":{}, "新東方":{}, "炸雞店":{}, "南翔":{}, }, }, }, }, "上海":{ "浦東區":{ "陸家嘴":{ "CICC":{}, "高盛":{}, "摩根":{}, }, "外灘":{}, "東方明珠":{}, }, "閘北區":{}, "黃浦區":{}, "徐彙區":{}, "嘉定區":{}, }, "山東":{ "濟南":{ "市中區":{}, "歷下區":{}, "天橋區":{}, "桂英渠":{}, "長清區":{}, }, "德州":{}, "青島":{}, "泰安":{}, "棗莊":{}, }, "江蘇":{ "南京市":{}, "蘇州市":{}, "常州":{}, "張家港市":{}, "大豐市":{}, }, "重慶":{}, "浙江":{}, } current_layer = menu #實現動態循環 parent_layers = [] #保存全部父級, 最後一個元素永遠都是父級 # parent_list = [] while True: for i in current_layer: print(i) choice = input("請輸入選項>>:").strip() if len(choice) == 0 : continue if choice in current_layer : # parent_layers = current_layer[choice] #改以前至關於父親 parent_layers.append(current_layer) #在進入下一層以前,把當前層(也就是下一層的父級)追加到列表中 #下一次loop,當用戶選擇b的時候後,就能夠直接取列表的最後一個值出來就OK了· current_layer = current_layer[choice] #改爲了子層 elif choice == "b": #current_layer = parent_layers.pop() if parent_layers : #[] current_layer = parent_layers.pop()#取出列表的最後一個值 # current_layer = parent_layers #把子層改爲父親 elif choice == "q" : break else: print("沒有這個選項,請確認!")
------------恢復內容結束------------spa