6.5-1Python之列表嵌套字典的使用

news/2024/11/28 5:29:12/

基于字典的客户信息管理系统,使用列表嵌套字典完成。

代码逻辑参考【5.5Python之列表的嵌套使用】

在此基础上做优化处理:

# 初始化客户信息--列表嵌套字典
customers = [{"name": "Alice", "age": 25, "email": "alice@example.com"},{"name": "Bob", "age": 30, "email": "bob@example.com"},{"name": "Charlie", "age": 35, "email": "charlie@example.com"}
]while True:print("""--------------欢迎进入客户管理系统--------------1. 添加客户2. 删除客户3. 修改客户4. 查询一个客户5. 查询所有客户6. 退出
-------------------------------------------""")choice = input("请输入你的选择:")# 1. 添加客户if choice == "1":name = input("请填写姓名:")age = int(input("请填写年龄:"))email = input("请填写邮箱:")# 将原来的列表改为字典new_customer = {"name": name,"age": age,"email": email}customers.append(new_customer)print(f"你已添加新的客户信息:{new_customer}")# 2. 删除客户elif choice == "2":if len(customers) == 0:print(f"暂无客户信息!")else:delete_customer = input("请填写需要删除的客户姓名:")# 将原来的列表的索引改为字典的key值for customerD in customers:if customerD["name"] == delete_customer:customers.remove(customerD)print(f"你已删除客户的信息:{delete_customer}")breakelif (customers[len(customers) - 1])["name"] == customerD["name"]:print(f"查无此客户的信息:{delete_customer}")# 3. 修改客户elif choice == "3":if len(customers) == 0:print(f"暂无客户信息!")else:update_customer = input("请填写需要修改的客户姓名:")for customerD in customers:# 将原来的列表的索引改为字典的key值if customerD["name"] == update_customer:name = input("请填写新的姓名:")age = int(input("请填写新的年龄:"))email = input("请填写新的邮箱:")# 将原来的列表改为字典customerD.update({"name": name, "age": age, "email": email})print(f"你已将客户:{update_customer}的信息修改为:{customerD}")breakelif (customers[len(customers) - 1])["name"] == customerD["name"]:print(f"查无此客户的信息:{update_customer}")# 4. 查询一个客户elif choice == "4":if len(customers) == 0:print(f"暂无客户信息!")else:search_customer = input("请填写需要查询的客户姓名:")for customerD in customers:# 将原来的列表的索引改为字典的key值if customerD["name"] == search_customer:print(f"你查询的客户姓名: {customerD["name"]}, 年龄: {customerD["age"]}, 邮箱: {customerD["email"]}")breakelif (customers[len(customers) - 1])["name"] == customerD["name"]:print(f"查无此客户的信息:{search_customer}")# 5. 查询所有客户elif choice == "5":if len(customers) == 0:print(f"暂无客户信息!")else:print(f"客户信息如下:")for customerD in customers:# 将原来的列表的索引改为字典的key值print(f"姓名:{customerD["name"]},年龄:{customerD["age"]},邮箱:{customerD["email"]}")# 6. 退出elif choice == "6":print("你已退出系统,感谢你的使用!")break# 其他情况else:print("输入的参数有误,请重新输入!")

代码逻辑上只是把原来的列表里的列表的逻辑修改为字典的逻辑。


http://www.ppmy.cn/news/1418600.html

相关文章

宜搭无权查询该应用信息,唯一排查码:21081d4e17130865292352743e9ed8

这种问题可能是关联表单出现了问题,当前应用中没有这个表单 所以就出现了应用无权访问的问题

LeetCode题练习与总结:有效数字--65

一、题目描述 有效数字(按顺序)可以分成以下几个部分: 1. 一个 小数 或者 整数 2. (可选)一个 e 或 E ,后面跟着一个 整数 小数(按顺序)可以分成以下几个部分: 1. &…

Open CASCADE学习|实现Extrude功能

首先定义了一些基本的几何元素,如线、圆和平面,然后使用makeExtrudebydir函数来对一个面进行挤出操作。下面是详细过程: 定义Extrude函数:makeExtrudebydir函数接受一个TopoDS_Shape对象和一个gp_Vec对象作为参数。TopoDS_Shape是…

安卓刷机fastboot分段传输

win10 fastboot 无法识别,驱动下载地址GitHub - xushuan/google_latest_usb_driver_windows 把inf文件更新到设备管理器驱动更新即可 问题 archive does not contain super_empty.img Sending vbmeta_a (4 KB) OKAY [ 0.117s] Writing …

通讯录的实现(顺序表版本)

我们知道通讯录是基于顺序表的前提下,要写好通讯录我们就要深入了解好顺序表。我们先来看看什么是顺序表。(注意今天代码量有点多,坚持一下)。冲啊!兄弟们! 顺序表的简单理解 对于顺序表,我们首…

45.HarmonyOS鸿蒙系统 App(ArkUI)创建列表(List)

列表是一种复杂的容器,当列表项达到一定数量,内容超过屏幕大小时,可以自动提供滚动功能。它适合用于呈现同类数据类型或数据类型集,例如图片和文本。在列表中显示数据集合是许多应用程序中的常见要求(如通讯录、音乐列…

CMMI认证是什么?软件企业必备认证!

CMMI认证,即能力成熟度模型集成(Capability Maturity Model Integration),是由美国卡内基梅隆大学软件工程研究所(SEI)开发的一种过程改进框架。它主要用于评估和提高企业在软件开发、维护和项目管理方面的…

pyqt实战-软件通用界面设计模板样例

软件界面 技术点 无边框设计自定义右上角最大化,最小化,关闭按钮界面布局能够自适应界面的放大缩小按住鼠标左键能够拖动整个界面treewidget整体风格设计 代码 import sysfrom PyQt5 import QtCore, QtGui, QtWidgets from PyQt5.Qt import * impor…