利用合适的数据结构存储学生姓名,利用ndarry数组随机生成班上每个同学的三门成绩,比如Python、math、English。成绩范围为40~100,使用统计函数计算每门课程的成绩的最高分、最低分、平均分、标准差;打印班级三门课程总成绩的最高分、最低分的学生名字。
时间: 2023-07-10 07:31:02 浏览: 157
学科、姓名、分数。 分别计算每门学科分数最高的前三名,并显示名次。写入MySQL中。
好的,我可以帮你解决这个问题。
首先,我们需要使用Python中的NumPy库来生成随机成绩和进行统计计算。以下是代码示例:
``` python
import numpy as np
# 学生姓名
names = ['张三', '李四', '王五', '赵六', '钱七']
# 随机生成成绩
grades = np.random.randint(40, 101, size=(5, 3)) # 5个学生,3门成绩
# 计算每门课程的最高分、最低分、平均分、标准差
max_grades = np.max(grades, axis=0)
min_grades = np.min(grades, axis=0)
mean_grades = np.mean(grades, axis=0)
std_grades = np.std(grades, axis=0)
# 打印每门课程的统计结果
print('Python:', '最高分:', max_grades[0], '最低分:', min_grades[0], '平均分:', mean_grades[0], '标准差:', std_grades[0])
print('Math:', '最高分:', max_grades[1], '最低分:', min_grades[1], '平均分:', mean_grades[1], '标准差:', std_grades[1])
print('English:', '最高分:', max_grades[2], '最低分:', min_grades[2], '平均分:', mean_grades[2], '标准差:', std_grades[2])
# 找出班级三门课程总成绩的最高分、最低分的学生名字
sum_grades = np.sum(grades, axis=1)
max_sum_grade_index = np.argmax(sum_grades)
min_sum_grade_index = np.argmin(sum_grades)
print('班级三门课程总成绩最高分的学生是:', names[max_sum_grade_index])
print('班级三门课程总成绩最低分的学生是:', names[min_sum_grade_index])
```
这段代码中,我们首先定义了学生姓名列表和成绩数组,然后使用`np.random.randint()`函数来生成随机成绩。接着,使用`np.max()`、`np.min()`、`np.mean()`和`np.std()`函数来计算每门课程的最高分、最低分、平均分和标准差。最后,使用`np.sum()`函数来计算每个学生的总成绩,并使用`np.argmax()`和`np.argmin()`函数找出班级三门课程总成绩的最高分和最低分的学生名字,并打印输出。
希望这个代码示例能够帮到你!
阅读全文