根据提供的某班级数学成绩单math.csv,计算并打印班级平均成绩 使用with open方式读取文件数据; 使用len()进行计算,要求输出结果为整数;
时间: 2023-06-18 22:06:06 浏览: 123
以下是代码实现:
```python
with open('math.csv', 'r') as f:
scores = f.readlines()[1:] # 跳过第一行表头
total_score = 0
for score in scores:
total_score += int(score.strip().split(',')[1])
avg_score = total_score // len(scores)
print(avg_score)
```
解释:
- `with open('math.csv', 'r') as f:` 打开文件 'math.csv' 并以只读模式读取,使用 `with` 语句可以在代码块执行完毕后自动关闭文件。
- `scores = f.readlines()[1:]` 读取文件内容并跳过第一行表头,将每行成绩存储在 `scores` 列表中。
- `total_score = 0` 初始化总成绩为 0。
- `for score in scores:` 对每行成绩进行遍历。
- `total_score += int(score.strip().split(',')[1])` 将每行成绩中的数值提取出来,并累加到总成绩中。
- `avg_score = total_score // len(scores)` 计算平均成绩并向下取整,赋值给 `avg_score`。
- `print(avg_score)` 输出平均成绩。
相关问题
根据提供的某班级数学成绩单math.csv,计算并打印班级平均成绩 1)使用with open方式读取文件数据; 2)使用len()进行计算,要求输出结果为整数;
好的,我会根据您的要求来回答问题。以下是代码示例:
```python
with open('math.csv', 'r') as f:
lines = f.readlines()[1:] # 跳过表头
scores = [int(line.strip().split(',')[1]) for line in lines]
class_average = sum(scores) // len(scores)
print(class_average)
```
这段代码首先使用 `with open` 的方式读取指定文件 `math.csv`,并跳过表头行。然后,通过列表解析式将每一行的第二个元素(即数学成绩)转换为整数,并放入 `scores` 列表中。最后,计算 `scores` 列表的平均值,并使用整除符号 `//` 取整,输出班级平均成绩。
需要注意的是,这段代码中的 `math.csv` 文件应该与代码文件在同一目录下。如果不在同一目录下,应该使用文件的完整路径。
阅读全文