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

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

2 个回答

jacky0752

在Python中,我们可以使用字典来创建一个通讯录,并使用正则表达式来处理输入的字符串。以下是一个简单的示例: ```python import re # 创建一个空的通讯录 contacts = {} def add_contact(name, phone): """添加联系人到通讯录""" if not re.match(r'^\d{10}$', phone): print("电话号码格式错误,请确保电话号码为10位数字") return contacts[name] = phone print(f"联系人 {name} 已添加到通讯录") def find_contact(name): """查找联系人的电话号码""" if name in contacts: print(f"{name} 的电话号码是 {contacts[name]}") else: print(f"未找到联系人 {name}") def main(): while True: action = input("请输入操作(add/find/exit):") if action == "add": name = input("请输入联系人姓名:") phone = input("请输入联系人电话号码:") add_contact(name, phone) elif action == "find": name = input("请输入要查找的联系人姓名:") find_contact(name) elif action == "exit": break else: print("无效的操作,请重新输入") if __name__ == "__main__": main() ``` 在这个示例中,我们定义了一个名为`contacts`的字典来存储联系人的信息。我们还定义了两个函数:`add_contact`用于添加联系人,`find_contact`用于查找联系人。在`add_contact`函数中,我们使用正则表达式`re.match(r'^\d{10}$', phone)`来检查电话号码是否为10位数字。如果不是,我们会提示用户输入正确的电话号码格式。

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和正则表达式来管理联系人信息。当然,这只是一个基础的实现,实际应用中可能需要更多的功能和错误处理。