python基础之省份三级菜单

菜单

menu = {     #定义一个字典
    '北京':{
        '海淀':{
            '五道口':{
                'soho':{},
                '网易':{},
                'google':{}
            },
            '中关村':{
                '爱奇艺':{},
                '汽车之家':{},
                'youku':{},
            },
            '上地':{
                '百度':{},
            },
        },
        '昌平':{
            '沙河':{
                '老男孩':{},
                '北航':{},
            },
            '天通苑':{},
            '回龙观':{},
        },
        '朝阳':{},
        '东城':{},
    },
    '上海':{
        '闵行':{
            "人民广场":{
                '炸鸡店':{}
            }
        },
        '闸北':{
            '火车战':{
                '携程':{}
            }
        },
        '浦东':{},
    },
    '山东':{},
}
back_flag = 0
while not back_flag: #无限循第一层
    for i in menu: #for循环打印第一层字典
        print(i)
    SF= input('输入省:').strip() #让用户输入选择
    if SF in menu: #判断用户输入的选择菜单是否包含;如果包含进入第二层选择
        while not back_flag: #让程序停留第二层
            for i1 in menu[SF]: # 遍历第二层字典
                print(i1)#打印第二层字典
            SS = input('输入市:').strip() #让用户输入选择
            if SS in menu[SF]: #判断用户选择二层菜单是否包含
                while not back_flag: # 如果包含让程序停留在第三层
                    for s1 in menu[SF][SS]:# 遍历打印第三层字典
                        print(s1)
                    xz = input("地址:").strip()# 让用户输入
                    if xz in menu[SF][SS]: #判断用户选择是否在三层字典有
                        while not  back_flag: # 如果有让用户停留在四级caid
                            for g in menu[SF][SS][xz]:#遍历打印四级cai单
                                print('你居住在',g)
                            du = input("4===:").strip() # 让用户输入选择
                            if du == "b": # 如果用户输入b就退出程序
                                back_flag = 1
                            if du == "q": #如果输入q返回上一层
                                break
                        # else:
                        #    back_flag = 1
                    if xz == "q":#如果输入q返回上一层
                        break
                    if xz == "b":# 如果用户输入b就退出程序
                        back_flag = 1
                # else:
                #     back_flag = 1
            if SS == "q":#如果输入q返回上一层
                break
            if SS == "b":
                back_flag = 1
        # else:
        #     back_flag = 1
    if SF == "q":#如果输入q返回上一层
        break
    if SF == "b":# 退出
        back_flag = 1

  测试

D:\python\python.exe D:/untitled/dir/for.py
北京
上海
山东
输入省:北京
海淀
昌平
朝阳
东城
输入市:haid
海淀
昌平
朝阳
东城
输入市:海淀
五道口
中关村
上地
地址:q
海淀
昌平
朝阳
东城
输入市:b

Process finished with exit code 0

  

posted @ 2019-06-28 19:37  烟雨楼台,行云流水  阅读(450)  评论(0编辑  收藏  举报