Python字典实现简单的三级菜单(实例讲解)

  • Post category:Python

下面我会详细讲解如何使用Python字典实现简单的三级菜单。

一、什么是字典?

在介绍如何使用Python字典来实现菜单之前,我们首先要了解一下Python中的字典。

字典(dict)在Python中是一种无序、可变的数据类型,它以键值对(key-value pairs)的形式存储信息。每个键值对之间用逗号隔开,整个字典被包含在花括号内。

下面是一个简单的字典示例:

my_dict = {'name': '小明', 'age': 18, 'city': '北京'}

这个字典中有三个键值对,分别表示姓名、年龄和城市。

我们可以通过以下方式访问字典中的元素:

print(my_dict['name']) # 输出:小明
print(my_dict['age']) # 输出:18
print(my_dict['city']) # 输出:北京

二、三级菜单的实现

了解了字典的基本知识之后,我们就可以开始实现三级菜单了。下面是一个简单的示例代码:

menu = {
    '北京':{
        '海淀':{
            '五道口':{},
            '中关村':{},
            '上地':{}
        },
        '朝阳':{
            '望京':{},
            '国贸':{},
            '三里屯':{}
        },
        '东城':{
            '东单':{},
            '王府井':{},
            '天坛':{}
        }
    },
    '上海':{
        '浦东':{
            '陆家嘴':{},
            '金桥':{},
            '张江':{}
        },
        '闵行':{
            '颛桥':{},
            '华漕':{},
            '江川路':{}
        },
        '宝山':{
            '大场镇':{},
            '淞宝':{},
            '罗店':{}
        }
    },
    '广州':{
        '天河':{
            '天河城':{},
            '正佳广场':{},
            '太古汇':{}
        },
        '海珠':{
            '丽影广场':{},
            '滨江路':{},
            '江南西':{}
        },
        '荔湾':{
            '花地大道':{},
            '环市东路':{},
            '龙津东路':{}
        }
    }
}

current_layer = menu
parent_layer = []

while True:
    for key in current_layer:
        print(key)
    choice = input("请输入你的选择(退出请输入q):").strip()
    if choice == 'q':
        break
    if choice not in current_layer:
        print("输入错误,请重新输入!")
    else:
        parent_layer.append(current_layer)
        current_layer = current_layer[choice]

print("已退出!")

在上面的代码中,我们首先定义了一个嵌套的字典,里面包含了三个城市、三个区域和三个街道。这个字典就是我们的菜单数据。

在使用菜单之前,我们定义了两个变量:current_layer表示当前层级的字典,初始化为菜单的顶级字典;parent_layer表示上一级字典的列表,初始化为空列表。

然后我们进入一个无限循环,不断让用户输入选择,并根据选择逐级进入下一级菜单。用户可以随时输入q退出菜单。

在每一级菜单中,我们先打印出当前层级的所有选项。然后等待用户输入选择。

如果选择是q,则退出菜单;如果选择不在当前层级中,则提示用户输入错误;如果选择正确,则把当前层级保存到parent_layer中,并把当前层级设置为下一级字典,继续进入菜单。

最后,当用户输入q退出菜单时,我们打印一条信息表示已经成功退出了菜单。

三、示例说明

下面我们来看看一些示例,看看这个菜单是如何工作的。

示例一

假设用户输入北京,则会打印出如下内容:

北京
上海
广州
请输入你的选择(退出请输入q):

然后用户可以输入海淀、朝阳或东城中的任意一个地区,如输入海淀,则会打印出五道口、中关村和上地这三个街道,然后等待用户输入选择。如果选择了五道口,则会打印出空字典(因为它已经是最后一级),并等待用户输入下一个选择。

示例二

假设用户输入上海,则会打印出如下内容:

北京
上海
广州
请输入你的选择(退出请输入q):

然后用户可以输入浦东、闵行或宝山中的任意一个地区,如输入浦东,则会打印出陆家嘴、金桥和张江这三个街道,然后等待用户输入选择。如果选择了金桥,则会打印出空字典(因为它已经是最后一级),并等待用户输入下一个选择。

示三

假设用户一开始输入了错误的选择,如输入了南京,则会提示用户重新输入:

北京
上海
广州
请输入你的选择(退出请输入q):南京
输入错误,请重新输入!
请输入你的选择(退出请输入q):

用户可以重新输入正确的选择,或者输入q退出菜单。

四、总结

Python的字典是一种非常方便的数据类型,可以用来存储复杂的结构化数据,例如三级菜单。

在实现三级菜单时,我们先定义了一个嵌套的字典来存储菜单数据,并使用一个无限循环来不断进入下一级菜单。每次进入下一级菜单时,我们把当前层级保存到一个列表中,以便用户可以随时返回上一级菜单。

希望本文的详细讲解对你有所帮助。如果你有任何问题或建议,请随时与我联系。