1. 程式人生 > >python三級菜單

python三級菜單

流程圖 python python三級菜單

需求:

編寫三級菜單
    1.菜單需求:
        一級菜單:            北京                                  山西
        二級菜單:    朝陽                昌平               長治           大同
        三級菜單:三裏屯    工體       沙河  西二旗       潞城  黎城     陽高縣  左雲縣
    2.任何一級都可以輸入b返回上一級,輸入q退出。
    3.知識涵蓋字典、列表、for循環、while循環、字符串格式化

流程圖:

技術分享

python代碼

#!/bin/bash/env python
#python3.X

#定義三級菜單字典zone
zone = {
    ‘北京‘:{
        ‘朝陽‘:[‘三裏屯‘,‘工體‘ ],
        ‘昌平‘:[‘沙河‘,‘西二旗‘ ]
    },
    ‘山西‘:{
        ‘長治‘:[‘潞城‘, ‘黎城‘ ],
        ‘大同‘:[‘陽高縣‘,‘左雲縣‘]
    }
}
#定義省級列表
province_list = list(zone.keys())
#打印省級列表循環
while True:
    print("歡迎光臨省級列表".center(20,‘-‘))
    #循環省級列表
    for i in province_list:
        #打印省級列表序號和省級名稱
        print(province_list.index(i)+1,i)
    #提示輸入
    p1 = input("請選擇序號:例:1  [輸入q:退出]")
    #判斷輸入的是否全是數字
    if p1.isdigit():
        #如果輸入的是數字,用int進行強制轉換成整形
        p1 = int(p1)
        #如果p1 大於0或者小於等於省級列表的參數數量
        if p1 >0 and p1 <= len(province_list):
            #求出省級名稱
            province_name = province_list[p1-1]
            #求出省級下邊的市級列表
            city_list = list(zone[province_name].keys())
            #打印市級列表循環
            while True:
                print("歡迎光臨市級列表".center(20, ‘-‘))
                #循環市級列表
                for c in city_list:
                    #打印市級列表序號和市級列表名稱
                    print(city_list.index(c)+1,c)
                #提示輸入
                c1 = input("請選擇序號:例:1 [輸入b:返回上一級][輸入q:退出]")
                #判斷是否輸入的是數字
                if c1.isdigit():
                    c1 = int(c1)
                    #如果輸入的序號在市級列表序列之內,打印列表,不在,告知不在。
                    if c1 >0 and c1 <= len(city_list):
                        #求出市級列表的名稱
                        city_name = city_list[c1-1]
                        #求出市級下邊的縣級列表:
                        county_list = list(zone[province_name][city_name])
                        #縣級列表循環
                        while True:
                            print("歡迎光臨縣級列表".center(20,"-"))
                            #循環縣級列表
                            for c2 in county_list:
                                #打印縣級列表
                                print(county_list.index(c2)+1,c2)
                            #提示輸入
                            c2 = input("請輸入相應符號:[輸入b:返回上一級][輸入q:退出]")
                            #如果輸入是b 退出這個循環
                            if c2 == "b":
                                break
                            #如果輸入的是q 退出整個循環
                            elif c2 == "q":
                                #exit() 代表退出整個循環
                                exit()
                            #如果輸入的不是b、q 就提示重新輸入
                            else:
                                print("\033[31m輸入錯誤,Please re-enter!\033[0m")
                    else:
                        print("\n輸入的序號%d不在此列表中!Please RE-enter!\n"%c1)
                #如果輸入的是b 退出這個循環
                elif c1 == "b":
                    break
                #如果輸入的是q 退出整個程序
                elif c1 == "q":
                    exit()
                #如果輸入的不是數字、b 、q 那麽提示 重新輸入
                else:
                    print("\033[31m輸入錯誤,Please re-enter!\033[0m")
        else:
            print("\n輸入的%d不在此列表中!Please RE-enter!\n"%p1)
    #如果不是數字,看是否是 字母q
    elif p1 == "q":
        #如果是q 執行exit()退出整個程序
        exit()
    #如果輸入的不是數字和q,提示重新輸入
    else:
        print("\033[31m輸入錯誤,Please re-enter!\033[0m")


本文出自 “506554897” 博客,請務必保留此出處http://506554897.blog.51cto.com/2823970/1932872

python三級菜單