欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python之三级目录

程序员文章站 2022-04-24 22:03:16
#python之三级目录低配版 menu = { '北京':{ '朝阳':{ '国贸':{ 'CICC':{ }, 'HP':{ }, '渣打银行':{ }, 'CCTV':{ }, }, ... ......
#python之三级目录低配版

menu = {
'北京':{
        '朝阳':{
            '国贸':{
                'cicc':{ },
                'hp':{ },
                '渣打银行':{ },
                'cctv':{ },
            },
            '望京':{
                '陌陌':{ },
                 '奔驰':{ },
                 '360':{ },
            },
            '三里屯':{
                '优衣库':{ },
                'apple':{ },
            },
        },
        '昌平':{
            '沙河':{
                '老男孩':{ },
                '阿泰包子':{ },
            },
            '天通苑':{
                '链家':{ },
                '我爱我家':{ },
            },
            '回龙观':{  },
        },
        '海淀':{
            '五道口':{
                '谷歌':{ },
                '网易':{ },
                '搜狐':{ },
                'sogo':{ },
                '快手':{ },
            },
            '中关村':{
                'youku':{ },
                'iqiyi':{ },
                '汽车之家':{ },
                '新东方':{ },
                'qq':{ },
            }
        },
    },
'上海':{
    '浦东':{
        '陆家嘴':{
            'cicc':{ },
             '高盛':{ },
            '摩根':{ },
        },
        '外滩':{ },

    },
    '闵行':{ },
    '静安':{ },
},
'山东':{
    '济南':{

    },
    '德州':{
        '乐陵':{
            '丁坞镇':{ },
            '城区':{ },
        },
        '平原':{ },
    },
    '青岛':{ },
},
}



back_flag=false
exit_flag=false
while not back_flag and not exit_flag:
    for key in menu:
        print(key)
    choice=input("1>>:").strip()
    if choice=="q":
        exit_flag=true
    if choice in menu:
        while not back_flag and not exit_flag:
            for key2 in menu[choice]:
                print(key2)
            choice2=input("2>>:").strip()
            if choice2 =='q':
                exit_flag=true
            if choice2 =='b':
                back_flag=true
            if choice2 in menu[choice]:
                while not back_flag and not exit_flag:
                    for key3 in menu[choice][choice2]:
                        print(key3)
                    choice3=input("3>>:").strip()
                    if choice3=='q':
                        exit_flag=true
                    if choice3=='b':
                        back_flag=true
                    if choice3 in menu[choice][choice2]:
                        while not back_flag and not exit_flag:
                            for key4 in menu[choice][choice2][choice3]:
                                print(key4)
                            choice4=input("4>>:").strip()
                            print('last level')
                            if choice4=='q':
                                exit_flag=true
                            if choice4=='b':
                                back_flag=true
                        else:
                            back_flag=false
                else:
                    back_flag=false
        else:
            back_flag=false
#python之三级目录高级版
menu = {
'北京':{
        '朝阳':{
            '国贸':{
                'cicc':{ },
                'hp':{ },
                '渣打银行':{ },
                'cctv':{ }
            },
            '望京':{
                '陌陌':{ },
                 '奔驰':{ },
                 '360':{ }
            },
            '三里屯':{
                '优衣库':{ },
                'apple':{ }
            }
        },
        '昌平':{
            '沙河':{
                '老男孩':{ },
                '阿泰包子':{ }
            },
            '天通苑':{
                '链家':{ },
                '我爱我家':{ }
            },
            '回龙观':{  },
        },
        '海淀':{
            '五道口':{
                '谷歌':{ },
                '网易':{ },
                '搜狐':{ },
                'sogo':{ },
                '快手':{ }
            },
            '中关村':{
                'youku':{ },
                'iqiyi':{ },
                '汽车之家':{ },
                '新东方':{ },
                'qq':{ }
            }
        }
    },
'上海':{
    '浦东':{
        '陆家嘴':{
            'cicc':{ },
             '高盛':{ },
            '摩根':{ }
        },
        '外滩':{ }

    },
    '闵行':{ },
    '静安':{ }
},
'山东':{
    '济南':{

    },
    '德州':{
        '乐陵':{
            '丁坞镇':{ },
            '城区':{ }
        },
        '平原':{ }
    },
    '青岛':{ }
}
}
current_layer = menu
parent_layers=[ ]   #保存所有父级,最后一个元素永远是父亲
while true:
    for key in current_layer:
        print(key)
    choice=input(">>>:").strip()
    if len(choice) == 0: continue
    if choice in current_layer:
       # parent_layer=current_layer  #改之前相当于护父亲
       parent_layers.append(current_layer)
       current_layer=current_layer[choice] #改成子层
    elif choice == "b":
        if parent_layers:
            current_layer=parent_layers.pop()#弹出列表最后一个元素,并返回该元素的值
    else:
        print("无此项")