利用合适的数据结构存储10名学生姓名,利用ndarry数组随机生成班上每个同学的三门成绩,比如Python、math、English。成绩范围为40~100,使用统计函数计算每门课程的成绩的最高分、最低分、平均分、标准差;打印班级三门课程总成绩的最高分、最低分的学生。
时间: 2025-06-23 14:27:25 浏览: 16
### 存储学生信息与成绩统计
对于给定的任务,可以采用Python字典来存储学生的姓名,并利用`numpy`生成随机成绩以及完成后续的统计分析工作。下面展示具体实现方式。
#### 创建学生名单和随机成绩
首先定义一个包含10位学生名字的列表,接着构建一个形状为\( (10, 3) \) 的ndarray用于储存每位同学在三门科目上的得分情况:
```python
import numpy as np
students = ["Alice", "Bob", "Charlie", "David", "Eva", "Frank", "Grace", "Hank", "Ivy", "Jack"]
scores = np.random.randint(40, 101, size=(len(students), 3))
```
这里`scores[:, 0]`, `scores[:, 1]`, 和 `scores[:, 2]`分别代表所有学生在Python编程、数学(Mathematics)、英语(English)这三科目的成绩[^4]。
#### 计算统计数据
接下来基于上述数组计算各项指标——最高分(maximum),最低分(minimum),平均分(mean),标准差(std deviation):
```python
max_scores = scores.max(axis=0)
min_scores = scores.min(axis=0)
mean_scores = scores.mean(axis=0).round(2)
std_deviation = scores.std(axis=0).round(2)
print(f"最高分: {max_scores}")
print(f"最低分: {min_scores}")
print(f"平均分: {mean_scores}")
print(f"标准差: {std_deviation}")
```
以上操作能够获取到各个学科的最大值、最小值、均值及离散程度的信息。
#### 寻找总分最高中低者
为了找到总分最高的学生及其对应的分数,可以通过求取每行元素之和再寻找其中的最大/最小值得出结论:
```python
total_scores = scores.sum(axis=1)
highest_total_index = total_scores.argmax()
lowest_total_index = total_scores.argmin()
print(f"总分最高的是{students[highest_total_index]},得分为:{total_scores[highest_total_index]}")
print(f"总分最低的是{students[lowest_total_index]},得分为:{total_scores[lowest_total_index]}")
```
这段代码实现了对学生个人综合表现的一个简单评估过程。
阅读全文
相关推荐














