如何用Python编写一个通讯录并使用正则表达式进行处理?

编写一个通讯录程序,该程序能够存储、查询和删除联系人信息,并且在查询和删除操作中使用正则表达式来匹配联系人的姓名。

1 个回答

polo

要编写一个通讯录程序,我们需要定义其基本功能,包括添加联系人、查询联系人和删除联系人。在查询和删除操作中,我们将使用正则表达式来匹配联系人的姓名。以下是一个简单的实现:

import re
class Contact:
def __init__(self, name, phone):
self.name = name
self.phone = phone

class AddressBook:
def __init__(self):
self.contacts = []

def add_contact(self, contact):
self.contacts.append(contact)

def find_contact(self, pattern):
regex = re.compile(pattern)
matched_contacts = []
for contact in self.contacts:
if regex.match(contact.name):
matched_contacts.append(contact)
return matched_contacts

def remove_contact(self, pattern):
regex = re.compile(pattern)
self.contacts = [contact for contact in self.contacts if not regex.match(contact.name)]

在这个实现中,我们定义了两个类:`Contact` 和 `AddressBook`。`Contact` 类用于创建联系人对象,包含姓名和电话号码。`AddressBook` 类用于管理通讯录,包含添加、查询和删除联系人的方法。在查询和删除操作中,我们使用正则表达式来匹配联系人的姓名。

要使用这个通讯录程序,我们可以创建一个 `AddressBook` 对象,并添加一些联系人:

address_book = AddressBook()
address_book.add_contact(Contact('Alice', '123-456-7890'))
address_book.add_contact(Contact('Bob', '234-567-8901'))
address_book.add_contact(Contact('Charlie', '345-678-9012'))

然后,我们可以使用正则表达式来查询或删除联系人:

found_contacts = address_book.find_contact(r'A.*')
for contact in found_contacts:
print(contact.name, contact.phone)

address_book.remove_contact(r'B.*')

这个简单的通讯录程序展示了如何使用Python和正则表达式来管理联系人信息。当然,这只是一个基础的实现,实际应用中可能需要更多的功能和错误处理。