AI教你学Python 第17天 :小项目联系人管理系统
项目概述
1. 项目目标
本项目旨在创建一个简单的联系人管理系统,具备以下功能:
- 添加新联系人
- 删除联系人
- 查找联系人
- 更新联系人信息
- 列出所有联系人
2. 技术栈
- 编程语言:Python
- 数据存储:使用 JSON 文件存储联系人信息
3. 项目结构
contact_manager/
├── contacts.json
└── contact_manager.py
详细功能实现
1. 数据结构设计
我们将使用 JSON 格式来存储联系人信息。每个联系人的信息将包括以下字段:
name
:姓名phone
:电话email
:邮箱
示例 JSON 文件 (contacts.json)
[
{
"name": "John Doe",
"phone": "123-456-7890",
"email": "johndoe@example.com"
},
{
"name": "Jane Smith",
"phone": "098-765-4321",
"email": "janesmith@example.com"
}
]
2. 核心代码
2.1 导入库
首先,我们需要导入必要的库:
import json
import os
2.2 定义联系人管理类
创建一个 ContactManager
类来管理联系人,包括添加、删除、查找、更新和列出联系人等功能。
class ContactManager:
def __init__(self, filename='contacts.json'):
self.filename = filename
self.load_contacts()
def load_contacts(self):
"""加载联系人数据"""
if os.path.exists(self.filename):
with open(self.filename, 'r') as f:
self.contacts = json.load(f)
else:
self.contacts = []
def save_contacts(self):
"""保存联系人数据"""
with open(self.filename, 'w') as f:
json.dump(self.contacts, f, indent=4)
def add_contact(self, name, phone, email):
"""添加新联系人"""
contact = {"name": name, "phone": phone, "email": email}
self.contacts.append(contact)
self.save_contacts()
def delete_contact(self, name):
"""删除联系人"""
self.contacts = [c for c in self.contacts if c['name'] != name]
self.save_contacts()
def find_contact(self, name):
"""查找联系人"""
for contact in self.contacts:
if contact['name'] == name:
return contact
return None
def update_contact(self, name, phone=None, email=None):
"""更新联系人信息"""
for contact in self.contacts:
if contact['name'] == name:
if phone:
contact['phone'] = phone
if email:
contact['email'] = email
self.save_contacts()
return
print("联系人不存在!")
def list_contacts(self):
"""列出所有联系人"""
return self.contacts
2.3 主程序
入口点,为用户提供交互界面。
def main():
manager = ContactManager()
while True:
print("\n欢迎来到联系人管理系统")
print("1. 添加联系人")
print("2. 删除联系人")
print("3. 查找联系人")
print("4. 更新联系人信息")
print("5. 列出所有联系人")
print("6. 退出")
choice = input("请选择操作: ")
if choice == '1':
name = input("输入姓名: ")
phone = input("输入电话: ")
email = input("输入邮箱: ")
manager.add_contact(name, phone, email)
print("联系人已添加!")
elif choice == '2':
name = input("输入姓名: ")
manager.delete_contact(name)
print("联系人已删除!")
elif choice == '3':
name = input("输入姓名: ")
contact = manager.find_contact(name)
if contact:
print(contact)
else:
print("联系人未找到!")
elif choice == '4':
name = input("输入姓名: ")
phone = input("输入新电话 (留空则不更新): ")
email = input("输入新邮箱 (留空则不更新): ")
manager.update_contact(name, phone if phone else None, email if email else None)
print("联系人信息已更新!")
elif choice == '5':
contacts = manager.list_contacts()
for contact in contacts:
print(contact)
elif choice == '6':
print("感谢使用联系人管理系统,再见!")
break
else:
print("无效选项,请重新选择!")
if __name__ == "__main__":
main()
3. 代码流程图
以下是代码的运行流程图,展示了各个功能之间的关系:
+-----------------+
| 主程序开始 |
+--------+--------+
|
+-----v-----+
| 显示菜单 |
+-----+-----+
|
+-------------+-------------+
| | |
+-----v-----+ +-----v-----+ +-----v-----+
| 添加联系人 | | 删除联系人 | | 查找联系人 |
+-----+-----+ +-----+-----+ +-----+-----+
| | |
| | |
+-----v-----+ +-----v-----+ +-----v-----+
| 更新联系人 | | 列出联系人 | | 退出程序 |
+-------------+ +-------------+ +-------------+
4. 练习题
练习 1
在现有的代码中添加一个功能,使用户可以通过电话号码查找联系人。
练习 2
扩展联系人管理系统,允许用户导入和导出联系人数据到 CSV 文件。
练习 3
优化用户输入,增加数据验证,以确保输入的电话和邮箱格式正确。
5. 项目总结
这个简单的联系人管理系统展示了 Python 的基础应用,包括类的使用、文件I/O,以及基础的列表和字典操作。在学习过程中,您将掌握如何设计一个易用的命令行界面,处理用户输入,并对数据进行基本管理。
通过本项目的实现,您还将了解到如何使用 JSON 进行数据存储,这是现代应用程序中常见的需求。随着您对 Python 的进一步理解,建议您尝试为项目增加更多高级特性,例如使用数据库存储联系人信息,或是创建图形用户界面 (GUI)。
6. 参考资源
- Python 官方文档
- JSON 数据格式
- Python 文件 I/O
希望这个详细的项目描述和示例代码能帮助您深入理解 Python 编程!如果您有任何问题或需要进一步的帮助,请随时告诉我。
怎么样今天的内容还满意吗?再次感谢观众老爷的观看。
最后,祝您早日实现财务自由,还请给个赞,谢谢!