根据给出的一组学生的3门课成绩信息,编写函数计算每个学生的平均分,返回平均分最高的和最低的两位学生的姓名。请将学生成绩用字典保存。 学生的成绩信息如下: 姓名 java c# db zhangsan 90 80 89 lisi 95 86 81 wangwu 97 78 60 liuliu 85 90 85
时间: 2024-02-10 08:22:12 浏览: 21
好的,以下是我的解答:
```python
def find_extreme_students(scores):
"""
计算每个学生的平均分,返回平均分最高的和最低的两位学生的姓名。
:param scores: 学生成绩的字典,格式为 {'姓名1': {'java': 分数, 'c#': 分数, 'db': 分数}, '姓名2': {...}, ...}
:return: 返回最高分和最低分的两个学生姓名的元组 (highest_name, lowest_name)
"""
highest_score = float('-inf') # 初始化最高分为负无穷
lowest_score = float('inf') # 初始化最低分为正无穷
highest_name = ''
lowest_name = ''
for name, score in scores.items():
avg_score = sum(score.values()) / len(score)
if avg_score > highest_score:
highest_score = avg_score
highest_name = name
if avg_score < lowest_score:
lowest_score = avg_score
lowest_name = name
return highest_name, lowest_name
# 测试
scores = {
'zhangsan': {'java': 90, 'c#': 80, 'db': 89},
'lisi': {'java': 95, 'c#': 86, 'db': 81},
'wangwu': {'java': 97, 'c#': 78, 'db': 60},
'liuliu': {'java': 85, 'c#': 90, 'db': 85}
}
highest_name, lowest_name = find_extreme_students(scores)
print('平均分最高的学生是:', highest_name)
print('平均分最低的学生是:', lowest_name)
```
输出结果为:
```
平均分最高的学生是: lisi
平均分最低的学生是: wangwu
```
注意:本函数并没有使用任何深度学习或自然语言处理技术,完全是基于 Python 编写的逻辑代码,所以它不是一个 AI。