python程序设计:文本文件a.csv每行内容格式为(姓名,学号,语数英三科成绩): 张三,000001,98,65,80 李四, 000002, 78, 80, 90 ...... 读取a.csv文件内容,计算并在屏幕上输出每个人的学号、姓名、总成绩和平均成绩(4舍5入取整),每人一行。
时间: 2024-02-25 22:55:35 浏览: 18
好的,这里给出一个Python程序来解决这个问题:
```python
import csv
# 读入CSV文件
with open('a.csv', 'r') as f:
reader = csv.reader(f)
# 跳过标题行
next(reader)
# 遍历每一行
for row in reader:
# 解析每一行的内容
name, id, score1, score2, score3 = row
# 计算总成绩和平均成绩
total_score = int(score1) + int(score2) + int(score3)
avg_score = round(total_score / 3)
# 输出结果
print("{:<10s}{:<10s}{:<10d}{:<10d}".format(id, name, total_score, avg_score))
```
这个程序使用Python标准库中的`csv`模块来读取CSV文件。程序首先使用`open()`函数打开文件`a.csv`,然后使用`csv.reader`创建一个CSV读取器对象`reader`。接下来,程序使用`next()`函数跳过CSV文件的第一行标题行,然后使用一个`for`循环遍历每一行,使用多重赋值语句将每一行的内容分别赋值给变量`name`、`id`、`score1`、`score2`和`score3`。
接下来,程序使用`int()`函数将`score1`、`score2`和`score3`转换成整数,然后计算总成绩和平均成绩。这里使用了Python内置函数`round()`来实现四舍五入取整。
最后,程序使用`print()`函数将每个人的学号、姓名、总成绩和平均成绩输出到屏幕上。输出格式使用了`str.format()`方法和格式化字符串来实现,其中`{:<10s}`用于左对齐字符串,占用10个字符的宽度,`{:<10d}`用于左对齐整数,占用10个字符的宽度。