15分钟学Python 第17天 :小项目联系人管理系统

15分钟学Python 第17天 :小项目联系人管理系统添加新联系人删除联系人查找联系人更新联系人信息列出所有联系人创建一个类来管理联系人 包括添加 删除 查找 更新和列出联系人等功能

Day 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": "" }, { 
    "name": "Jane Smith", "phone": "098-765-4321", "email": "" } ] 

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

在这里插入图片描述

怎么样今天的内容还满意吗?再次感谢观众老爷的观看。
最后,祝您早日实现财务自由,还请给个赞,谢谢!

今天的文章 15分钟学Python 第17天 :小项目联系人管理系统分享到此就结束了,感谢您的阅读。
编程小号
上一篇 2025-01-02 08:27
下一篇 2025-01-02 08:21

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/99818.html