python基于SQLite3的通讯录管理系统
时间: 2023-11-19 13:05:09 浏览: 116
下面是一个简单的基于 SQLite3 的通讯录管理系统的 Python 代码:
```python
import sqlite3
# 连接数据库
conn = sqlite3.connect('address_book.db')
# 创建数据库表
conn.execute('''CREATE TABLE IF NOT EXISTS contacts
(id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
phone TEXT NOT NULL,
email TEXT NOT NULL);''')
# 添加联系人
def add_contact():
name = input("请输入姓名:")
phone = input("请输入电话号码:")
email = input("请输入电子邮件地址:")
conn.execute("INSERT INTO contacts (name,phone,email) \
VALUES (?,?,?)", (name,phone,email))
conn.commit()
print("联系人已添加成功!")
# 修改联系人
def update_contact():
contact_id = input("请输入要修改的联系人 ID:")
name = input("请输入新的姓名:")
phone = input("请输入新的电话号码:")
email = input("请输入新的电子邮件地址:")
conn.execute("UPDATE contacts SET name = ?, phone = ?, email = ? WHERE id = ?", (name,phone,email,contact_id))
conn.commit()
print("联系人已修改成功!")
# 删除联系人
def delete_contact():
contact_id = input("请输入要删除的联系人 ID:")
conn.execute("DELETE FROM contacts WHERE id = ?", (contact_id,))
conn.commit()
print("联系人已删除成功!")
# 显示所有联系人
def show_contacts():
cursor = conn.execute("SELECT id, name, phone, email FROM contacts")
print("{:<5} {:<20} {:<15} {:<30}".format("ID","姓名","电话","电子邮件"))
for row in cursor:
print("{:<5} {:<20} {:<15} {:<30}".format(row[0],row[1],row[2],row[3]))
# 主函数
def main():
while True:
print("请选择操作:")
print("1. 添加联系人")
print("2. 修改联系人")
print("3. 删除联系人")
print("4. 显示所有联系人")
print("5. 退出程序")
choice = input("请输入操作序号(1-5):")
if choice == "1":
add_contact()
elif choice == "2":
update_contact()
elif choice == "3":
delete_contact()
elif choice == "4":
show_contacts()
elif choice == "5":
break
else:
print("无效的操作序号,请重新输入!")
conn.close()
if __name__ == '__main__':
main()
```
这个程序中,我们首先连接到 SQLite3 数据库,并创建一个名为 `contacts` 的表来存储联系人信息。然后,我们定义了几个函数来实现不同的功能,包括添加、修改、删除和显示联系人。在主函数中,我们使用一个无限循环来等待用户输入操作序号,根据不同的选择调用不同的函数,直到用户选择退出程序为止。最后,我们关闭数据库连接。
阅读全文