• 作业一: 三级菜单


    #作业一: 三级菜单
    #要求:
    打印省、市、县三级菜单
    可返回上一级
    可随时退出程序
    menu = {
        '北京':{
            '海淀':{
                '五道口':{
                    'soho':{},
                    '网易':{},
                    'google':{}
                },
                '中关村':{
                    '爱奇艺':{},
                    '汽车之家':{},
                    'youku':{},
                },
                '上地':{
                    '百度':{},
                },
            },
            '昌平':{
                '沙河':{
                    '老男孩':{},
                    '北航':{},
                },
                '天通苑':{},
                '回龙观':{},
            },
            '朝阳':{},
            '东城':{},
        },
        '上海':{
            '闵行':{
                "人民广场":{
                    '炸鸡店':{}
                }
            },
            '闸北':{
                '火车战':{
                    '携程':{}
                }
            },
            '浦东':{},
        },
        '山东':{},
    }
    
    
    
    tag=True
    while tag:
        menu1=menu
        for key in menu1: # 打印第一层
            print(key)
    
        choice1=input('第一层>>: ').strip() # 选择第一层
    
        if choice1 == 'b': # 输入b,则返回上一级
            break
        if choice1 == 'q': # 输入q,则退出整体
            tag=False
            continue
        if choice1 not in menu1: # 输入内容不在menu1内,则继续输入
            continue
    
        while tag:
            menu_2=menu1[choice1] # 拿到choice1对应的一层字典
            for key in menu_2:
                print(key)
    
            choice2 = input('第二层>>: ').strip()
    
            if choice2 == 'b':
                break
            if choice2 == 'q':
                tag = False
                continue
            if choice2 not in menu_2:
                continue
    
            while tag:
                menu_3=menu_2[choice2]
                for key in menu_3:
                    print(key)
    
                choice3 = input('第三层>>: ').strip()
                if choice3 == 'b':
                    break
                if choice3 == 'q':
                    tag = False
                    continue
                if choice3 not in menu_3:
                    continue
    
                while tag:
                    menu_4=menu_3[choice3]
                    for key in menu_4:
                        print(key)
    
                    choice4 = input('第四层>>: ').strip()
                    if choice4 == 'b':
                        break
                    if choice4 == 'q':
                        tag = False
                        continue
                    if choice4 not in menu_4:
                        continue
    
                    # 第四层内没数据了,无需进入下一层
    
    三级菜单面条版
    View Code
    menu = {
        '北京':{
            '海淀':{
                '五道口':{
                    'soho':{},
                    '网易':{},
                    'google':{}
                },
                '中关村':{
                    '爱奇艺':{},
                    '汽车之家':{},
                    'youku':{},
                },
                '上地':{
                    '百度':{},
                },
            },
            '昌平':{
                '沙河':{
                    '老男孩':{},
                    '北航':{},
                },
                '天通苑':{},
                '回龙观':{},
            },
            '朝阳':{},
            '东城':{},
        },
        '上海':{
            '闵行':{
                "人民广场":{
                    '炸鸡店':{}
                }
            },
            '闸北':{
                '火车战':{
                    '携程':{}
                }
            },
            '浦东':{},
        },
        '山东':{},
    }
    
    
    
    #part1(初步实现):能够一层一层进入
    layers = [menu, ]
    
    while True:
        current_layer = layers[-1]
        for key in current_layer:
            print(key)
    
        choice = input('>>: ').strip()
    
        if choice not in current_layer: continue
    
        layers.append(current_layer[choice])
    
    
    
    #part2(改进):加上退出机制
    layers=[menu,]
    
    while True:
        if len(layers) == 0: break
        current_layer=layers[-1]
        for key in current_layer:
            print(key)
    
        choice=input('>>: ').strip()
    
        if choice == 'b':
            layers.pop(-1)
            continue
        if choice == 'q':break
    
        if choice not in current_layer:continue
    
        layers.append(current_layer[choice])
    
    三级菜单文艺青年版
    View Code
  • 相关阅读:
    UITableViewCell隔行换颜色
    NSUserDefaults数据保存使用
    使用API获取(默认付款条件和到期日)
    分类账和法人实体
    如何避免Oracle Form界面倒入.csv文件出现乱码
    XML publisher 填充空白行数
    DBA处理异常常用SQL
    wsh_deliveries_pub.create_update_delivery异常
    sql
    破解Oracle ERP密码
  • 原文地址:https://www.cnblogs.com/sunwanling/p/9121062.html
Copyright © 2020-2023  润新知