python学习-字典1

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python学习-字典1相关的知识,希望对你有一定的参考价值。

  第一次写技术博客,也是刚刚申请成功,所以要先感谢博客园的相关工作人员。开发做了多年,直到今年才开始学习python,习惯了C、C++的数据格式,所以一开始就被python数据类型中的字典所吸引。基础的知识有很多同仁都写过了,我只是通过我学习中的一道作业题来说明一下。

  题目:三级菜单

  要求:

        1. 运行程序输出第一级菜单

        2. 选择一级菜单某项,输出二级菜单,同理输出三级菜单

        3. 返回上一级菜单和顶部菜单

        4. 菜单数据保存在文件中"

实现代码:

#准备一个三级菜单
技术分享
menu_list = {"甘肃":{"兰州":{"城关区":{1:"甘肃地质博物馆",
                                         2:"地球厅",
                                         3:"矿物岩石厅"},
                              "七里河区":{1:"兰州碑林",
                                           2:"碑轩",
                                           3:"碑亭"},
                              "西固区":{1:"五一山生态旅游区",
                                         2:"合欢",
                                         3:"水杉",
                                         4:"枇杷"},
                              "红古区":{1:"白塔山公园",
                                         2:"象皮鼓",
                                         3:"青铜钟",
                                         4:"紫荆树",}
                            },
                      "敦煌":{"沙州镇":{"敦煌莫高窟":"5A",
                                         "鸣沙山-月牙泉风景名胜区":"4A",
                                         "阳关遗址":"4A",},
                              "肃州镇":{"甘肃敦煌雅丹国家地质公园":"4A",
                                         "白马塔":"1A"},
                            },
                   },
             "宁夏":{"中卫市":{"中宁":{"美食":"臊子面",
                                         "景点":"双龙寺",
                                         "特产":"枸杞",},
                                "中卫":{"美食":"馓子",
                                         "景点":"沙坡头",
                                         "特产":"羊皮筏子",},
                          },
                      "吴忠":{"利通区":{1:"柴园村",
                                         2:"李园村",
                                         3:"石佛寺村"},
                               "青铜峡市":{1:"刘碱滩村",
                                            2:"洼路沟村",
                                            3:"二道桥村"},
                               "盐池县":{1:"杨岔村",
                                          2:"吴家桥村",
                                          3:"郭家桥村",
                                          4:"刘家湾村",},
                               "同心县": {1:"山水沟村",
                                          2:"清水沟村",
                                          3:"涝河桥村",
                                          4:"马家湾村",},
                        },
                      "银川":{"银川市":{1:"海宝塔",
                                         2:"华夏西部影视城",
                                         3:"纳家户清真寺",
                                         4:"中大寺和南关清真大寺",},
                              "西夏区":{"景区":"西夏王陵"},
                            },
                },
        }
#一个死循环,为的是能反复输入,直到输入q退出
while True:
    index = 0
    for i in menu_list.keys():
        print(str(index) + ":", i)
        index += 1

    oper = str(input("province>:"))

    if oper == "q":   #判断是否退出
        exit()
    elif oper not in menu_list.keys():  #判断输入是否合规
        print("输入内容不存在,请重新输入!")
    else:  
        one = menu_list[oper]
        print("***************************************")

        while True:   #进入二级菜单
            index = 0
            for i in one.keys():
                print(str(index) + ":", i)
                index += 1

            oper = str(input("city>:"))

            if oper == "q": #是否退出判断
                exit()
            elif oper == "b": #是否返回一级菜单
                break
            elif oper not in one.keys():
                print("输入内容不存在,请重新输入!")
            else:
                two = one[oper]
                print("***************************************")

                while True: #进入三级菜单
                    index = 0
                    for i in two.keys():
                        print(str(index) + ":", i)
                        index += 1

                    oper = str(input("area>:"))

                    if oper == "q":
                        exit()
                    elif oper == "b":
                        break
                    elif oper not in two.keys():
                        print("输入内容不存在,请重新输入!")
                    else:
                        print(two[oper])
                        print("***************************************")

以上是关于python学习-字典1的主要内容,如果未能解决你的问题,请参考以下文章

Python snippet(代码片段)

Python代码阅读(第26篇):将列表映射成字典

Python代码阅读(第40篇):通过两个列表生成字典

python 机器学习有用的代码片段

学习笔记:python3,代码片段(2017)

python学习05——字典