本题要求编写程序,计算学生们的平均成绩,并统计及格(成绩不低于60分)人数。题目保证输入输出均在整型范围内。
时间: 2024-02-29 17:51:10 浏览: 40
假设您已经将学生的成绩存储在一个二维列表中,命名为`grades`,每一行代表一个学生,每一列代表一门课程。那么,您可以使用以下代码计算平均成绩并统计及格人数:
```python
# 计算平均成绩
n = len(grades) # 学生数
m = len(grades[0]) # 课程数
avg_scores = [] # 平均成绩列表
for i in range(n):
avg_score = sum(grades[i]) / m # 计算每个学生的平均成绩
avg_scores.append(avg_score)
# 统计及格人数
num_pass = 0 # 及格人数
for i in range(n):
if all(grade >= 60 for grade in grades[i]): # 如果所有成绩都不低于60分
num_pass += 1 # 及格人数加1
```
解释一下上述代码:
- `n = len(grades)` 和 `m = len(grades[0])` 分别计算学生数和课程数。`len()`函数返回列表的长度。
- `avg_scores = []` 创建一个新的空列表,用于存储每个学生的平均成绩。
- `for i in range(n):` 遍历每个学生。
- `avg_score = sum(grades[i]) / m` 计算每个学生的平均成绩。`sum()`函数计算列表中所有元素的和。注意,这里使用了整数除法,结果会自动向下取整。
- `avg_scores.append(avg_score)` 将每个学生的平均成绩添加到`avg_scores`列表中。
- `num_pass = 0` 初始化及格人数为0。
- `for i in range(n):` 再次遍历每个学生。
- `if all(grade >= 60 for grade in grades[i])):` 如果该学生所有成绩都不低于60分,则执行下一行代码。
- `num_pass += 1` 及格人数加1。
最后,您可以输出平均成绩和及格人数:
```python
print(avg_scores)
print(num_pass)
```