python学习笔记12:三级菜单实例讲解

这篇博客介绍了如何使用Python实现三级菜单,涵盖省份、城市和区县的选择。通过学习,你需要掌握列表和字典这两种数据结构。文章讨论了Python中的while和for循环,强调for循环适用于遍历可迭代对象,例如数组中的元素。通过实例,读者将理解如何构建并操作这些菜单选项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实例要求:
1.三级菜单(省、市、区)
2.可依次选择进入各子菜单
3.所需新知识点:列表、字典

python中有两种循环,while和for,两种循环的区别是,while循环之前,先判断一次,如果满足条件的话,再循环,
for循环的时候必须有一个可迭代的对象,才能循环,比如说得有一个数组。
python中for循环很简单,循环的是一个可迭代对象中的元素,你这个对象中有多少个元素,就循环多少次,
比如说一个数组list,list = [‘a’,‘b’,‘c’],直接循环取的是这个list里面的值,直到取值结束。

data = {
    "北京市":{
        "海淀区":{

        },
        "朝阳区":{
            "望京":['奔驰','陌陌'],
            "国贸": ['CICC','惠普'],
            "东直门": ['Advent','飞信'],
        },
        "昌平区":{
            "沙河":["oldboy","51test"],  # 只要有中括号,里面的元素就应该用逗号隔开
            "天通苑": ["链家地产","我爱我家"],
        }
    },
    "内蒙古":{
        "呼和浩特市":{
            "赛罕区": [],
            "玉泉区": [],
            "新城区": [],
        },
        "包头市":{
            "高新技术开发区": [],
            "九原区": [],
        },
        "鄂尔多斯市":{
            "杭锦旗": [],
            "鄂托克旗": [],
        },

    },
    "辽宁省": {
        "沈阳市": {
            "东陵区": [],
        },
        "抚顺市": {
            "经济开发区": [],
        },
        "盘锦市": {
            "大洼区": [],
        },

    },
}
exit_flag = False # 通过设定一个truefalse的值,来实现用户想随时退出的功能

while not exit_flag:# 死循环  while True变化来的
    # 一级一级地打印
    for i1 in data:   # 首次循环key
        print(i1)  # 打印的是字典首层的key

    choice1 = input('选择进入1>>:')  # 输入的是省级菜单的key

    if choice1 in data:    # 如果选择的省在字典里,程序需在此时处于死循环状态,方便用户多次选择省级菜单
        while not exit_flag: # 死循环,可以不断重选
            for i2 in data[choice1]: # 进入用户所选的省,循环
                print('\t',i2)  # 打印的是字典中,用户所选的省下,县级的key
            choice2 = input('选择进入2>>:')  # 输入的是县级菜单的key
            if choice2 in data[choice1]: # 如果选择的县在字典里,程序又需在此时处于死循环状态,方便用户多次选择县级菜单
                while not exit_flag: # 死循环,可以不断重选
                    for i3 in data[choice1][choice2]: # 进入用户所选的县,循环
                        print('\t\t', i3) # 打印该县下面的内容(市),key
                    choice3 = input('选择进入3>>:') # 用户输入所选的市,key
                    if choice3 in data[choice1][choice2]: # 如果选择的市在字典里,程序需要将下面的内容展示出来,用for循环
                        for i4 in data[choice1][choice2][choice3]:
                            print('\t\t\t',i4) # 打印下面循环的内容。\t\t代表打印内先tab两下
                        choice4 = input('最后一层,按b返回>>:')
                        if choice4 == 'b':
                            pass # pass代表什么也不做,放在这里是占位符,避免代码报错;此处什么也不做的话,代码会回到i3循环
                        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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值