zoukankan      html  css  js  c++  java
  • 【练习题】三级城市选择

    python 三级登录

    # 1. 可以一层一层的进入到所有层 ;
    # 2. 可以在每层返回上一层 ;
    # 3. 可以在任意层回退上一层或退出;
    menu = {
        '北京':{
            '朝阳':{
                '国贸':{},
                    'CICC':{},
                    'HP':{},
                    '渣打银行':{},
                    'CCTV':{},
                },
                '望京':{
                    '陌陌':{},
                    '奔驰':{},
                    '360':{},
                },
                '三里屯':{
                    '优衣库':{},
                    'apple':{},
            },
            '昌平':{
                '沙河':{
                    '老男孩':{},
                    '阿泰包子':{},
                },
                '天通苑':{
                    '链家':{},
                    '我爱我家':{},
                },
                '回龙观':{},
            },
            '海淀':{
                '五道口':{
                    '谷歌':{},
                    '网易':{},
                    'sohu':{},
                    '快手':{},
                },
                '中关村':{
                    'youku':{},
                    'Iqiyi':{},
                    '汽车之家':{},
                    '新东方':{},
                    'QQ':{},
                },
    
            },
        },
        '上海':{
            '浦东':{
                '陆家嘴':{
                    'CICC':{},
                    '高盛':{},
                    '摩根':{},
                },
            },
            '闵行':{},
            '静安':{},
        },
        '山东':{
            '济南':{},
            '德州':{
                '乐陵':{
                    '丁务镇':{},
                    '城区':{},
                },
                '平原':{},
            },
            '青岛':{},
        },
    }
    
    floor = menu #定义当前层为menu,实现动态循环;
    empty_list = [] #定义一个空列表,保存所有父级,最后一个元素永远都是父级;
    while True: #while True 语句中一定要有结束该循环的break语句,否则会一致循环下去
        for key in floor:
            print(key) #打印菜单内容
        #让用户选择输入,strip() 方法用于一处字符串头尾置顶的字符(默认为空格或换行符)或字符序列
        choice = input("请输入地址>>>【返回/b,退出/q】:").strip()
        if choice == 'q': #判断如果用户输入q,便break跳出循环;
            break
        # 判断用户如果输入的字符长度如果为0,便跳出本次循环;
        if len(choice) == 0: #len() 方法返回对象(字符、列表、元组等)长度或项目个数。
            continue
        # 如果用户输入的是菜单里的内容;
        if choice in floor:
            #在进入下一层之前,把当前层追加到列表中;
            # 下一次循环时,如果用户输入b,就可以直接取列表的最后一个值出来;
            empty_list.append(floor) #append() 方法用于在列表末尾添加新的对象;
            floor = floor[choice]   #改成下一层;
        elif choice == 'b': #如果用户输入b;
            if empty_list: #判断列表是否为空
                # pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
                floor = empty_list.pop() #取出列表最后一个值,因为他就是当前层的父级;
        else:
            print('输入有误!')
    
  • 相关阅读:
    大型门户网站架构设计的可伸缩性(转载)
    geodatabase的类型(翻译)
    在Windows Server 2008上部署SVN代码管理总结
    可以有效改进项目管理技能的十个过程(转载)
    GTD和知识管理
    查询Oracle版本号
    微软产品组里的十一类人(转载)
    在Win7中创建、部署WebService时遇到的访问被拒绝错误解决方法
    小议地理编码(转载)
    在Win7中将我的电脑快捷方式放入任务栏
  • 原文地址:https://www.cnblogs.com/surenliu/p/12736640.html
Copyright © 2011-2022 走看看