写一份基于Python的通讯录管理系统 功能要求: 1.提供增加,删除,修改通信录的功能 2.提供单个查询,查询所有通讯录的功能; 3.能够保存通讯录信息到本地文件,退出等功能 4.实现按照姓名首字母排序,或者按照特殊要求(如学号,或是工号等) 排序 并附上注释
时间: 2024-03-10 11:46:37 浏览: 58
好的,下面是一个基于Python的通讯录管理系统的代码,已经按照功能要求进行了注释说明:
```python
# 定义一个联系人类
class Contact:
def __init__(self, name, phone, email):
self.name = name
self.phone = phone
self.email = email
# 定义一个通讯录类
class AddressBook:
def __init__(self):
self.contacts = []
# 增加联系人
def add_contact(self, contact):
self.contacts.append(contact)
# 删除联系人
def delete_contact(self, name):
for contact in self.contacts:
if contact.name == name:
self.contacts.remove(contact)
# 修改联系人信息
def modify_contact(self, name, phone, email):
for contact in self.contacts:
if contact.name == name:
contact.phone = phone
contact.email = email
# 单个查询
def search_contact(self, name):
for contact in self.contacts:
if contact.name == name:
return contact
# 查询所有联系人
def search_all_contacts(self):
return self.contacts
# 保存通讯录到本地文件
def save_to_file(self, file_name):
with open(file_name, 'w') as f:
for contact in self.contacts:
f.write(contact.name + ',' + contact.phone + ',' + contact.email + '\n')
# 从本地文件加载通讯录
def load_from_file(self, file_name):
with open(file_name, 'r') as f:
lines = f.readlines()
for line in lines:
parts = line.strip().split(',')
contact = Contact(parts[0], parts[1], parts[2])
self.add_contact(contact)
# 按照姓名首字母排序
def sort_by_name(self):
self.contacts.sort(key=lambda x: x.name)
# 按照特殊要求排序
def sort_by(self, key):
self.contacts.sort(key=lambda x: getattr(x, key))
# 测试代码
if __name__ == '__main__':
ab = AddressBook()
# 添加联系人
ab.add_contact(Contact('Tom', '123456', 'tom@test.com'))
ab.add_contact(Contact('Jerry', '654321', 'jerry@test.com'))
ab.add_contact(Contact('Bob', '135790', 'bob@test.com'))
# 查询联系人
print(ab.search_contact('Tom').phone)
print(ab.search_all_contacts())
# 修改联系人信息
ab.modify_contact('Tom', '111111', 'tom@newtest.com')
print(ab.search_contact('Tom').phone)
# 删除联系人
ab.delete_contact('Jerry')
print(ab.search_all_contacts())
# 保存通讯录到本地文件
ab.save_to_file('address_book.txt')
# 从本地文件加载通讯录
ab.load_from_file('address_book.txt')
print(ab.search_all_contacts())
# 按照姓名首字母排序
ab.sort_by_name()
print(ab.search_all_contacts())
# 按照特殊要求排序
ab.sort_by('phone')
print(ab.search_all_contacts())
```
以上是基于Python的通讯录管理系统的代码,你可以根据自己的需要进行修改和扩展。
阅读全文