如何使用Python编程来创建一个包含大王、小李和小鹿手机号及QQ号的’通信录.csv’文件,用键盘输入学生信息,并随后编写一个函数以便能够查询大王的手机号和QQ号?
时间: 2024-11-09 22:20:04 浏览: 18
首先,你需要安装Python的`csv`模块,如果还没有安装,可以使用pip安装:
```bash
pip install csv
```
接下来,我们可以按照以下步骤创建并填充CSV文件:
1. **打开文件并创建通信录**:
```python
import csv
# 创建一个字典列表来存储学生信息
students = []
def input_student_info():
name = input("请输入姓名(例如大王): ")
if name == '大王':
phone = input("请输入大王的手机号: ")
qq = input("请输入大王的QQ号: ")
elif name == '小李':
phone = input("请输入小李的手机号: ")
qq = input("请输入小李的QQ号: ")
else: # 小鹿
phone = input("请输入小鹿的手机号: ")
qq = input("请输入小鹿的QQ号: ")
return {'name': name, 'phone': phone, 'qq': qq}
# 循环收集用户输入并添加到students列表中
while True:
student_data = input_student_info()
students.append(student_data)
confirm = input("是否还要添加更多学生? (y/n) ")
if confirm.lower() != 'y':
break
# 写入CSV文件
with open('通信录.csv', 'w', newline='') as csvfile:
fieldnames = ['name', 'phone', 'qq']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
for student in students:
writer.writerow(student)
```
2. **编写查询函数**:
```python
def search_student(phone=None, qq=None):
"""根据手机号或QQ号查询学生信息"""
with open('通信录.csv', 'r') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
if (phone and row['phone'] == phone) or (qq and row['qq'] == qq):
return row
return "未找到匹配的学生信息"
# 调用查询函数查找大王的信息
print(search_student(phone='请输入大王的手机号', qq='请输入大王的QQ号'))
```
现在你可以运行这个程序,输入学生信息,然后通过`search_student`函数查询大王的手机号和QQ号。
阅读全文