python:关于三级菜单的新手实现

#实现省市级的三级菜单

#!/user/bin/env python
citys={"广东省":{"广州市":["番禺区","天河区","白云区"],
                  "深圳市":["南山区","宝安区","罗湖区"],
                  "惠州市":["惠东","惠阳","淡水"]},
       "湖南省":{"武汉":["黄鹤楼","户部巷","东湖"],
                  "宜昌":["三峡大坝","葛洲坝","西峡"],
                  "恩施":["神农溪","恩施土司城","女儿城"]},
       "河北省":{"北京":["故宫","天安门","八达岭"],
                  "太原":["晋祠","柳巷","圣母殿"],
                  "石家庄":["赵州桥","隆兴寺","西柏波"]}}
print(citys["广东省"]["广州市"])
while True:
    for a in citys.keys():
        print(a)
    city=input("请输入需要了解的城市:")
    if city in citys and city=="广东省":
        for b in citys[city].keys():
            print(b)

        area = input("请输入需要了解的区域:")
        if area in citys[city] and area == "广州市":
            for b in citys[city][area]:
                print(b)
            turn = input("按任意键返回上一层,按q退出程序")
            if turn == "q":
                break
            else:
                continue

上面的代码实现的只是简单而繁琐的一种,后面的代码会一直重复,因此并没有写下去,后面的是我看视频附带的代码,我也附上,较我写的完整一些

data = {
    '北京':{
        "昌平":{
            "沙河":["oldboy","test"],
            "天通苑":["链家地产","我爱我家"]
        },
        "朝阳":{
            "望京":["奔驰","陌陌"],
            "国贸":{"CICC","HP"},
            "东直门":{"Advent","飞信"},
        },
        "海淀":{},
    },
    '山东':{
        "德州":{},
        "青岛":{},
        "济南":{}
    },
    '广东':{
        "东莞":{},
        "常熟":{},
        "佛山":{},
    },
}
exit_flag = False

while not exit_flag:
    for i in data:
        print(i)
    choice = input("选择进入1>>:")
    if choice in data:
        while not exit_flag:
            for i2 in data[choice]:
                print("\t",i2)
            choice2 = input("选择进入2>>:")
            if choice2 in data[choice]:
                while not exit_flag:
                    for i3 in data[choice][choice2]:
                        print("\t\t", i3)
                    choice3 = input("选择进入3>>:")
                    if choice3 in data[choice][choice2]:
                        for i4 in data[choice][choice2][choice3]:
                            print("\t\t",i4)
                        choice4 = input("最后一层,按b返回>>:")
                        if choice4 == "b":
                            pass
                        elif choice4 == "q":
                            exit_flag = True
                    if choice3 == "b":
                        break
                    elif choice3 == "q":
                        exit_flag = True
            if choice2 == "b":
                break
            elif choice2 == "q":
                exit_flag = True

今天 2017/08/22,突然发现昨天的程序可以进行优化,可以实现每个省市级都进行选择

#实现省市级的三级菜单

#!/user/bin/env python
citys={"广东省":{"广州市":["番禺区","天河区","白云区"],
                  "深圳市":["南山区","宝安区","罗湖区"],
                  "惠州市":["惠东","惠阳","淡水"]},
       "湖南省":{"武汉":["黄鹤楼","户部巷","东湖"],
                  "宜昌":["三峡大坝","葛洲坝","西峡"],
                  "恩施":["神农溪","恩施土司城","女儿城"]},
       "河北省":{"北京":["故宫","天安门","八达岭"],
                  "太原":["晋祠","柳巷","圣母殿"],
                  "石家庄":["赵州桥","隆兴寺","西柏波"]}}
print(citys["广东省"]["广州市"])
while True:
    for a in citys.keys():
        print(a)
    city=input("请输入需要了解的城市:")
    for b in citys[city].keys():
        print(b)

    area = input("请输入需要了解的区域:")

    for b in citys[city][area]:
        print(b)
    turn = input("按任意键返回上一层,按q退出程序")
    if turn == "q":
        break
    else:
        continue
else:
     pass

 

posted @ 2017-08-21 21:52  咸鱼功阀术  阅读(313)  评论(0编辑  收藏  举报