练习-三级菜单

zunyi = ['红花岗', '汇川', '遵义']
liupanshui = ['钟山', '六枝特', '水城']
guiyang = ['南明', '云岩', '花溪']
guizhou = {'1:贵阳': guiyang, '2:六盘水': liupanshui, '3:遵义': zunyi}

guilin = ['秀峰', '叠彩', '象山']
liuzhou = ['城中', '鱼峰', '柳南']
nanning = ['兴宁', '青秀', '江南']
guangxi = {'1.南宁': nanning, '2.柳州': liuzhou, '2.桂林': guilin}

shenzhen = ['罗湖', '福田', '南山']
shaoguan = ['武江', '浈江', '曲江']
guangzhou = ['荔湾', '越秀', '海珠']
guangdong = {'1.广州': guangzhou, '2.韶关': shaoguan, '3.深圳': shenzhen}

# 省级字典
Provinces = {'1:贵州': guizhou, '2:广西': guangxi, '3:广东': guangdong}

# 省和市是字典,方便显示名称,区级因为区是第三级,下面不需要再分级,所有用列表

# 显示省级,然后进入循环
for i in Provinces:
    print(i)
while True:  # 省级输入循环
    num = input('Select Provinces print City:')
    # 先判断是否退出
    if num == "b":
        break
    elif num == 'q':
        exit()
    elif num.isdigit() and int(num) > 0 and int(num) < 4:  # 判断输入是否有效
        # 先获取省级字典所有key,转换成列表,然后根据列表索引找到市级key
        p_city = list(Provinces.keys())[int(num) - 1]
        for m in Provinces[p_city]:  # 显示市级
            print(m)
        while True:  # 市级输入循环
            num = input('Select City print Region:')
            # 先判断是否退出
            if num == "b":
                # 如果退出市级,显示省级名称
                for i in Provinces:
                    print(i)
                break
            elif num == 'q':
                exit()
            elif num.isdigit() and int(num) > 0 and int(num) < 4:  # 判断输入是否有效
                # 先获取市级字典所有key,转换成列表,然后根据列表索引找到区级key
                p2_city = list(Provinces[p_city].keys())[int(num) - 1]
                for p in Provinces[p_city][p2_city]:  # 显示区级
                    print(p)
                while True:  # 区级输入循环
                    num = input('B:return / Q:quit :')
                    if num == "b":
                        for m in Provinces[p_city]:
                            print(m)
                        break
                    elif num == 'q':
                        exit()
                    else:
                        print('input error')
            else:
                print('input error')
    else:
        print('input error')

 

posted @ 2017-03-03 22:14  破斧呈粥  阅读(135)  评论(0编辑  收藏  举报