用python做一个通讯录管理系统
时间: 2024-02-02 16:02:54 浏览: 81
好的,以下是一个简单的通讯录管理系统的实现,使用Python和SQLite数据库:
首先,需要安装SQLite3模块,可以使用以下命令安装:
```python
!pip install pysqlite3
```
接着,创建一个SQLite数据库文件,并创建一个名为“contacts”的表,表包含以下字段:id、name、phone、email。
```python
import sqlite3
# 创建数据库连接
conn = sqlite3.connect('contacts.db')
# 创建表
conn.execute('''CREATE TABLE IF NOT EXISTS contacts
(id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
phone TEXT NOT NULL,
email TEXT);''')
# 关闭数据库连接
conn.close()
```
接下来,定义几个函数来实现通讯录管理系统的基本操作:
1. 添加联系人:
```python
def add_contact(name, phone, email):
# 连接数据库
conn = sqlite3.connect('contacts.db')
# 插入数据
conn.execute("INSERT INTO contacts (name, phone, email) VALUES (?, ?, ?)", (name, phone, email))
# 提交更改
conn.commit()
# 关闭数据库连接
conn.close()
```
2. 删除联系人:
```python
def delete_contact(id):
# 连接数据库
conn = sqlite3.connect('contacts.db')
# 删除数据
conn.execute("DELETE FROM contacts WHERE id=?", (id,))
# 提交更改
conn.commit()
# 关闭数据库连接
conn.close()
```
3. 修改联系人:
```python
def update_contact(id, name=None, phone=None, email=None):
# 连接数据库
conn = sqlite3.connect('contacts.db')
# 更新数据
if name is not None:
conn.execute("UPDATE contacts SET name=? WHERE id=?", (name, id))
if phone is not None:
conn.execute("UPDATE contacts SET phone=? WHERE id=?", (phone, id))
if email is not None:
conn.execute("UPDATE contacts SET email=? WHERE id=?", (email, id))
# 提交更改
conn.commit()
# 关闭数据库连接
conn.close()
```
4. 查询联系人:
```python
def search_contact(name=None, phone=None, email=None):
# 连接数据库
conn = sqlite3.connect('contacts.db')
# 构造查询语句
query = "SELECT * FROM contacts WHERE 1=1"
if name is not None:
query += " AND name LIKE '%" + name + "%'"
if phone is not None:
query += " AND phone LIKE '%" + phone + "%'"
if email is not None:
query += " AND email LIKE '%" + email + "%'"
# 执行查询
cursor = conn.execute(query)
# 处理结果
result = []
for row in cursor:
result.append({'id': row[0], 'name': row[1], 'phone': row[2], 'email': row[3]})
# 关闭数据库连接
conn.close()
return result
```
现在,我们可以使用上述函数来完成通讯录管理系统的基本操作了。以下是一个简单的命令行交互式界面:
```python
while True:
print("\n请选择操作:")
print("1. 添加联系人")
print("2. 删除联系人")
print("3. 修改联系人")
print("4. 查询联系人")
print("5. 退出")
choice = input("请输入数字:")
if choice == "1":
name = input("请输入姓名:")
phone = input("请输入电话号码:")
email = input("请输入电子邮件地址:")
add_contact(name, phone, email)
print("联系人已添加")
elif choice == "2":
id = input("请输入要删除的联系人ID:")
delete_contact(id)
print("联系人已删除")
elif choice == "3":
id = input("请输入要修改的联系人ID:")
name = input("请输入新的姓名(不修改请按Enter键):")
phone = input("请输入新的电话号码(不修改请按Enter键):")
email = input("请输入新的电子邮件地址(不修改请按Enter键):")
update_contact(id, name, phone, email)
print("联系人已修改")
elif choice == "4":
name = input("请输入要查询的姓名(不输入则不限制):")
phone = input("请输入要查询的电话号码(不输入则不限制):")
email = input("请输入要查询的电子邮件地址(不输入则不限制):")
result = search_contact(name, phone, email)
print("查询结果:")
for row in result:
print(row['id'], row['name'], row['phone'], row['email'])
elif choice == "5":
print("程序已退出")
break
else:
print("输入无效,请重新输入")
```
以上就是一个简单的通讯录管理系统的实现,可以根据需求进行扩展和优化。
阅读全文