码迷,mamicode.com
首页 > 编程语言 > 详细

python第一天作业: 三层菜单

时间:2016-08-10 14:32:19      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:字典   三层菜单   

#!/usr/bin/env python

# -*- coding:utf-8 -*-

#Author David


"""

功能要求:

三级菜单

可一次选择进入各子菜单

所需新知识点:列表、字典。

按b返回上一级,按q退出菜单


"""

#创建一个地址位置描述字典

china_map = {

    "北京" : {

        "东城区" : {

            "街道1":"街道1描述",

            "街道2":"街道2描述"

        },

        "海淀区": {

            "苏州街": "苏州街描述",

            "海淀黄庄": "海淀黄庄描述"

        }

    },

    "陕西省": {

        "西安市": {

            "碑林区": ["碑林","钟楼","鼓楼","回坊","兴庆公园","西安交通大学","太多经典"],

            "莲湖区": ["莲湖公园","革命公园"],

            "新城区": ["除了省政府,其他真不清楚"],

            "雁塔区": ["大雁塔","大唐芙蓉园","青龙寺","陕西历史博物馆","曲江","西高新","N多NB学校","好的资源太多"],

            "未央区": ["西安市政府","龙首源","城市运动公园","不感兴趣"],

            "灞桥区": ["世博园","湿地公园","桃花潭公园","浐灞半岛","雁鸣湖公园","白鹿原影视城","鲸鱼沟旅游"],

            "长安区": ["N多大学新校区","秦岭环山自行车赛","沣峪口","翠华山","南五台","农家乐","沾上秦岭啥都好"],

            "阎良区": ["航空城","西飞XX","除了航空还是航空,牛逼闪闪"],

            "杨凌区": ["国家级农业示范区","西北农林大学"],

            "高陵区": ["渭北工业区,让工业远离主城区"],

            "户县": ["啥都想搞,可就不被重视","户县软面","秦镇米皮"],

            "蓝田县": ["蓝田猿人遗址","蓝田玉","汤浴温泉"],

        },

        "安康市": {

        },

        "宝鸡市": {

        },

        "汉中市": {

        },

        "商洛市": {

        },

        "铜川市": {

        },

        "渭南市": {

        },

        "咸阳市": {

        },

        "延安市": {

        },

        "榆林市": {

        },

    }

}


#欢迎变量

msg_welcome = "欢迎访问china_map,可供查看的地址为"

msg_choice = "请输入需要浏览的地名:"


#程序主体思想

#3层while循环,分别对应省级,市级,区级。

#用户选择省份后将进入市级选择界面,依次选择城市,区域。

#在任何一级里输入b,执行break函数,跳出该级循环,返回到上级循环里。

#在任意以及里输入q,则给exit_flag赋值为true,各层的循环以次被打破,程序退出。


#定义循环推出变量,并进行初始化赋值。

exit_flag = False


# 开始省一级的循环

while exit_flag is not True:

    print(msg_welcome)

    for key in china_map:

        print(key)

    print("province_level".center(40, "-"))

    user_choice = input(msg_choice)

    if user_choice in china_map.keys():

# 开始市一级的循环

        while exit_flag is not True:

            for key2 in china_map[user_choice]:

                print(key2)

            print("city_level".center(40, "-"))

            user_choice2 = input(msg_choice)

            if user_choice2 in china_map[user_choice].keys():

# 开始区一级的循环

                while exit_flag is not True:

                    for key3 in china_map[user_choice][user_choice2]:

                        print(key3)

                    print("zone_level".center(40,"-"))

                    user_choice3 = input(msg_choice)

                    if user_choice3 in china_map[user_choice][user_choice2].keys():

                        print("description of {0}".format(user_choice3).center(40,"-"))

                        print(user_choice3,china_map[user_choice][user_choice2][user_choice3])

                        print("end of description".center(40,"-"))

                    else:

                        if user_choice3 == "q":

                            print("END".center(40, ‘*‘))

                            exit_flag = True                  #推倒多层循环的多米诺骨牌

                        elif user_choice3 == "b":

                            break                             #第3层循环被打破

            else:

                if user_choice2 == "q":                       #推倒多层循环的多米诺骨牌

                    print("END".center(40, ‘*‘))

                    exit_flag = True

                elif user_choice2 == "b":                     #第2层循环被打破

                    break

    else:

        if user_choice == "q":

            print("END".center(40, ‘*‘))

            exit_flag = True                                   #推倒多层循环的多米诺骨牌




本文出自 “net580” 博客,谢绝转载!

python第一天作业: 三层菜单

标签:字典   三层菜单   

原文地址:http://net580.blog.51cto.com/1404195/1836498

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!