Python 三級菜單與優化(一層循環嵌套)


優化的思路是使用單層循環嵌套完成三級菜單,這個優化思路我非常喜歡,我喜歡在編程的時候用最少的東西寫出同樣的效果,通常這樣會繞來繞去,但非常有趣!!!

需求:

  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("退出程序...")
三級菜單

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM