请在上个程序中加入一个功能,可以计算每个课程的平均成绩,加入搜索功能,能查询到每个学生的各个信息
时间: 2023-06-10 12:06:48 浏览: 55
好的,我来为您实现这个功能。首先,我们需要在学生信息列表中添加每个学生的各个课程成绩信息。我会使用一个嵌套字典来存储每个学生的各个成绩信息。
```python
# 初始化学生信息列表
students = [
{"name": "Alice", "age": 20, "gender": "female", "scores": {"math": 90, "english": 85, "history": 95}},
{"name": "Bob", "age": 19, "gender": "male", "scores": {"math": 80, "english": 75, "history": 70}},
{"name": "Charlie", "age": 21, "gender": "male", "scores": {"math": 70, "english": 80, "history": 75}},
{"name": "David", "age": 18, "gender": "male", "scores": {"math": 60, "english": 70, "history": 80}},
{"name": "Eva", "age": 22, "gender": "female", "scores": {"math": 95, "english": 90, "history": 85}}
]
```
接下来,我们可以定义一个函数来计算每个课程的平均成绩:
```python
def calculate_average_score(course):
total_score = 0
num_students = len(students)
for student in students:
total_score += student["scores"][course]
average_score = total_score / num_students
return average_score
```
这个函数接受一个参数 `course`,表示要计算的课程名称。它遍历学生信息列表,对于每个学生,获取其对应课程的成绩,并累加到总分数中。最后,计算平均分数并返回。
现在,我们可以调用这个函数来计算各个课程的平均成绩:
```python
math_average = calculate_average_score("math")
english_average = calculate_average_score("english")
history_average = calculate_average_score("history")
print("Math average score:", math_average)
print("English average score:", english_average)
print("History average score:", history_average)
```
最后,我们可以添加一个搜索功能,让用户能够查询每个学生的各个信息。我们可以定义一个函数 `search_student`,接受一个参数 `name`,表示要查询的学生姓名。这个函数会遍历学生信息列表,找到姓名匹配的学生,并返回其所有信息。
```python
def search_student(name):
for student in students:
if student["name"] == name:
return student
return None
```
现在,我们可以调用这个函数来查询每个学生的各个信息:
```python
# 查询 Alice 的信息
alice_info = search_student("Alice")
print(alice_info)
# 查询 Bob 的信息
bob_info = search_student("Bob")
print(bob_info)
```
完整代码如下: