使用Python编写个人通讯录程序。要求能够查询通讯录清单,对通讯录中的记录实现增加、删除、修改、查询操作,通讯录中至少要有三个字段:姓名、手机号码、通讯地址。使用CSV文件保存通讯录内容。采用文本界面操作,
时间: 2023-12-10 13:42:36 浏览: 67
python做的通讯录
5星 · 资源好评率100%
好的,下面是一个简单的通讯录程序,可以实现增加、删除、修改、查询等操作,使用CSV文件保存通讯录内容。
首先,我们需要安装`pandas`库,用于读写CSV文件,可以使用以下命令进行安装:
```
pip install pandas
```
然后,我们就可以开始编写程序了。以下是完整的代码:
```python
import pandas as pd
# 读取通讯录文件
def read_address_book():
try:
df = pd.read_csv("address_book.csv")
except:
df = pd.DataFrame(columns=["姓名", "手机号码", "通讯地址"])
return df
# 保存通讯录文件
def save_address_book(df):
df.to_csv("address_book.csv", index=False)
# 增加记录
def add_record(df):
name = input("请输入姓名:")
phone = input("请输入手机号码:")
address = input("请输入通讯地址:")
df = df.append({"姓名":name, "手机号码":phone, "通讯地址":address}, ignore_index=True)
save_address_book(df)
print("记录已添加!")
# 删除记录
def delete_record(df):
name = input("请输入要删除的记录的姓名:")
df = df[df["姓名"] != name]
save_address_book(df)
print("记录已删除!")
# 修改记录
def modify_record(df):
name = input("请输入要修改的记录的姓名:")
if name not in df["姓名"].tolist():
print("记录不存在!")
return
phone = input("请输入手机号码:")
address = input("请输入通讯地址:")
df.loc[df["姓名"]==name, "手机号码"] = phone
df.loc[df["姓名"]==name, "通讯地址"] = address
save_address_book(df)
print("记录已修改!")
# 查询记录
def query_record(df):
name = input("请输入要查询的记录的姓名(留空表示查询所有记录):")
if name:
df = df[df["姓名"] == name]
print(df)
# 主函数
def main():
df = read_address_book()
while True:
print("======================")
print("1. 增加记录")
print("2. 删除记录")
print("3. 修改记录")
print("4. 查询记录")
print("5. 退出程序")
choice = input("请输入您的选择(1-5):")
if choice == "1":
add_record(df)
elif choice == "2":
delete_record(df)
elif choice == "3":
modify_record(df)
elif choice == "4":
query_record(df)
elif choice == "5":
break
else:
print("无效的选择!")
if __name__ == "__main__":
main()
```
程序中定义了5个函数:
- `read_address_book()`:用于读取通讯录文件,返回一个`pandas.DataFrame`对象;
- `save_address_book(df)`:用于保存通讯录文件,接受一个`pandas.DataFrame`对象作为参数;
- `add_record(df)`:用于增加一条记录,接受一个`pandas.DataFrame`对象作为参数;
- `delete_record(df)`:用于删除一条记录,接受一个`pandas.DataFrame`对象作为参数;
- `modify_record(df)`:用于修改一条记录,接受一个`pandas.DataFrame`对象作为参数;
- `query_record(df)`:用于查询记录,接受一个`pandas.DataFrame`对象作为参数;
主函数`main()`中使用一个循环来不断接收用户的选择,根据用户的选择调用相应的函数。
在程序执行时,会先尝试读取名为`address_book.csv`的CSV文件,如果文件不存在,则创建一个空的`pandas.DataFrame`对象。用户可以选择增加、删除、修改、查询记录或退出程序。每次执行增加、删除、修改操作后,都会将`pandas.DataFrame`对象保存到CSV文件中。
希望这个程序能够对你有所帮助!
阅读全文