優化的思路是使用單層循環嵌套完成三級菜單,這個優化思路我非常喜歡,我喜歡在編程的時候用最少的東西寫出同樣的效果,通常這樣會繞來繞去,但非常有趣!!!
需求:
1、運行程序輸出第一級菜單;
2、選擇一級菜單某項,輸出二級菜單,同理輸出三級菜單;
3、讓用戶選擇是否要退出;
4、有返回上一級菜單的功能;
多層循環嵌套:

data = { 'A':{ "Aa":['Aa1','Aa2','Aa3'], "Ab":['Ab1','Ab2','Ab3'], "Ac":['Ac1','Ac2','Ac3'] }, 'B':{ "Ba":['Ba1','Ba2','Ba3'], "Bb":['Bb1','Bb2','Bb3'], "Bc":['Bc1','Bc2','Bc3'] }, 'C':{ "Ca":['Ca1','Ca2','Ca3'], "Cb":['Cb1','Cb2','Cb3'], "Cc":['Cc1','Cc2','Cc3'] } } jump = True #跳出循環直至退出程序 print("特別提醒:選‘q’退出;選‘b’返回上一級菜單!!") while jump == True: for i in data: print(i) choice = input("請選擇進入:") if choice in data: while jump == True: for i1 in data[choice]: print(i1) choice1 = input("請選擇進入:") if choice1 in data[choice]: while jump == True: for i2 in data[choice][choice1]: print(i2) choice2 = input("請選擇退出或返回上一菜單:") if choice2 == 'q': jump = False elif choice2 == 'b': break else: print("選擇錯誤請重新選擇:") elif choice1 == 'q': jump = False elif choice1 == 'b': break else: print("選擇錯誤請重新選擇:") elif choice == "q": jump = False else: print("選擇錯誤請重新選擇:") print ("退出程序...")
單層循環嵌套:

data = { 'A':{ "Aa":['Aa1','Aa2','Aa3'], "Ab":['Ab1','Ab2','Ab3'], "Ac":['Ac1','Ac2','Ac3'] }, 'B':{ "Ba":['Ba1','Ba2','Ba3'], "Bb":['Bb1','Bb2','Bb3'], "Bc":['Bc1','Bc2','Bc3'] }, 'C':{ "Ca":['Ca1','Ca2','Ca3'], "Cb":['Cb1','Cb2','Cb3'], "Cc":['Cc1','Cc2','Cc3'] } } list_menu = [] flag = True while flag: if len(list_menu) == 0: info = data else: info = list_menu[-1] for i in info: print (i) choice = input("請選擇進入:").strip() if choice == 'q': break if choice == 'b': if len(list_menu) == 0: print("已經是最高級菜單!!") continue list_menu.pop() continue if len(list_menu) == 0: list_menu.append(info[choice]) continue list_menu.append(list_menu[-1][choice]) print("退出程序...")