能在此基础上增加存盘和装入,即存储以前已有联系人的信息,并能够读出与写入,再增加判断重名联系人的功能
时间: 2023-12-23 07:05:13 浏览: 24
当然可以。你可以将联系人信息存储在一个文件或数据库中,并在程序启动时读取。在新增联系人时,可以先判断是否已存在同名联系人,避免重名问题。以下是一个简单的示例代码,用于演示如何实现这些功能:
```python
import json
class Contact:
def __init__(self, name, phone):
self.name = name
self.phone = phone
class ContactsManager:
def __init__(self):
self.contacts = []
def add_contact(self, name, phone):
# 判断是否已存在同名联系人
for contact in self.contacts:
if contact.name == name:
print(f'{name} already exists')
return False
# 创建新的联系人并加入列表
contact = Contact(name, phone)
self.contacts.append(contact)
print(f'{name} added')
return True
def save(self, filename):
# 将联系人列表保存为 JSON 文件
with open(filename, 'w') as f:
json.dump([vars(c) for c in self.contacts], f)
def load(self, filename):
# 从 JSON 文件中读取联系人列表
with open(filename) as f:
data = json.load(f)
self.contacts = [Contact(**d) for d in data]
if __name__ == '__main__':
manager = ContactsManager()
manager.load('contacts.json')
while True:
name = input('Please enter the name:')
if name == '':
break
phone = input('Please enter the phone number:')
manager.add_contact(name, phone)
manager.save('contacts.json')
```
在上面的示例中,`Contact` 类表示一个联系人,包含 `name` 和 `phone` 两个属性。`ContactsManager` 类则管理多个联系人,提供添加联系人、保存和读取联系人列表的功能。在调用 `add_contact` 方法时,会先判断是否已存在同名联系人,如果存在则返回 False,否则创建新的联系人并加入列表。`save` 方法将联系人列表保存为 JSON 文件,`load` 方法从 JSON 文件中读取联系人列表。在程序启动时,我们先调用 `load` 方法读取已保存的联系人列表,然后循环添加新的联系人,最后调用 `save` 方法保存修改后的联系人列表。