#!/usr/bin/evn python
# -*- coding:utf-8 -*-
# Author:Li ShiLin
# 实现三级菜单
# 创建一个三级字典供使用  模拟数据库
# 需要注意的是再写代码的时候Python一定要注意格式 每一层的代码 该如何对其 就要对其 不然报错的话很难找到问题的所在
# python语言不想java有一个大括号抱起来 乱一点无所谓 在python中哪怕有一个地方格式不正确 都无法正常的运行 会报错
# 格式不对的话 一般报错 :IndentationError: expected an indented block
date = {
    '北京':{
            "平昌":{
                "沙河":{"腾讯","华为","小米"},
                "天同怨":{"百度","链家地产","我爱我家地产"}
            },
            "朝阳":{
                "望京":{"奔驰","宝马","福特","长安"},
                "国贸":{"CICC","ATCC","HP"},
                "东直门":{"华硕","阿里巴巴","京东"}
            }
    },
    '四川':{
            "成都":{
                "青羊":{"八宝街","春熙路","阳公桥"},
                "武侯":{"武侯祠","外双楠","火车北站"},
                "双流":{"蛟龙港","海滨城","双流万达广场"},
                "郫县":{"红光镇","富士康","联想"}
            },
            "绵阳":{
                "万顺":{"草上飞"},
                "城区":{"ODDL","DBCC"}
            },
            "西昌":{
                "南城":{"长途汽车站","东方元"},
                "北城":{"琼海","火车站","工业区"}
            }
    },
    '云南':{
            "昆明":{
                "城南":{"大学城","双都飞"},
                "城北":{"工业区","农业区"}
            },
            "西双版纳":{
                "南城":{"旅游区","度假区","休闲区"},
                "西城":{"娱乐区","双阳区","不知道"}
            },
            "昭通":{
                "南城":{"山顶","无极"},
                "东城":{"火车站","汽车站"}
            }
    },
    '广东':{
            "珠海":{
                "北城":{"商业","旅游","工作"},
                "西城":{"富家","双极"}
            },
            "东莞":{
                "城西":{"吃","喝","玩","OPP"}
            },
            "佛山":{
                "北城":{"美的","OPPO","VIVO","HUAWEI"},
                "东城":{"格力","长虹","小天使"}
            }
    }
}
exit_flag = False
# while循环 可以多次返回
while True :
    # for循环遍历字典中的数据
    for i in  date :
        print(i)
    # 用户输入选择进入
    choice = input("选择进入>>>>>")
    if choice in date :
        while not exit_flag :
    #输入选择后 用for循环再次遍历字典的下一层 再次让用户选择输入 再进入下一层 一次循环进入下一层
            for two in date[choice] :
                print("\t",two)
            choice2 = input("选择进入2>>>>>")
            if choice2 in date[choice] :
                while not exit_flag :
                    for therr in  date[choice][choice2]:
                        print("\t\t",therr)
                    # 进入字典的第三层
                    choice3 = input("选择进入3>>>>")
                    if choice3 in date[choice][choice2]:
                            for frou in date[choice][choice2][choice3]:
                                print("\t\t",frou)
                            # 这里是最后一层  让用户选择输入 输入B 就返回上一级
                            choice4 = input("这里是最后一层,输入B/b返回")
                            # 判断用户输入的是什么
                            if choice4 == "B" or choice4 == "b":
                                pass
                            # 如果输入Q就退出  下面的内容都是一样的道理
                            elif choice4 == "q" or choice4 == "Q":
                                exit_flag = True

                    if choice3 == "b" or choice3 == "B":
                        break
                    elif choice3 == "q" or choice3 == "Q":
                        exit_flag = True
            if choice2 ==  "b" or choice2 == "B":
                break
            elif choice2 == "q" or choice2 == "Q":
                exit_flag = True
最后的运行结果是这样的

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐