A35791. 张老师手上有一份学生成绩单(cj.txt) , 成绩单上只有每位学生的各科成绩, 而张老师希望能看到各科成绩的所有学生的平均分, 以下代码可以实现平均分的计算, 并按示例格式排版, 请补充代码。示例:with open('/data/cj.txt', _____①_____ ) as f: string = f.read() data = string.split('\n') data.pop(…
题目描述
张老师手上有一份学生成绩单(cj.txt) , 成绩单上只有每位学生的各科成绩, 而张老师希望能看到各科成绩的所有学生的平均分, 以下代码可以实现平均分的计算, 并按示例格式排版, 请补充代码。
示例:

with open('/data/cj.txt', _____①_____ ) as f:
string = f.read()
data = string.split('\n')
data.pop(0)
lis = []
for i in data:
new = i.split('\t')
lis.append(new)# 将分割得到的列表追加到空列表中,lis为二维
lis1 = ['平均分']
for i in range(1,4):# 循环 3 次, 因为需要计算 3 个科目的平均分
sum_ = _____②_____
average = round(sum_ / 3)
lis1.append(str(average))
s = "\t".join(lis1)
res = string + s
with open('cj1.txt', 'w') as f:
f.write(res)
参考答案
with open('/data/cj.txt', 'r') as f: #以只读的方式打开文件
string = f.read()# 读取整个文件内容, 返回字符串
data = string.split('\n')# 按换行符分割为列表
data.pop(0)# 去标题部分
lis = []# 空列表
for i in data: #遍历被分割的列表
new = i.split('\t')# 将列表的一个元素按制表符分割
lis.append(new)# 将分割得到的列表追加到空列表中, lis 变为二维
lis1 = ['平均分']# 定义一个列表用于存储平均分
for i in range(1, 4): #循环 3 次, 因为需要计算 3 个科目的平均分
sum_ = int(lis[0][i]) + int(lis[1][i]) + int(lis[2][i])
average = round(sum_ / 3)# 平均分, 结果保整数
lis1.append(str(average))# 转换为字符串并追加到 lis1 中
s = "\t".join(lis1)# 将列表连接成字符串
res = string + s
with open('cj1.txt', 'w') as f: #以写入的方式打开文件
f.write(res)答案解析
评分标准:
(1) 'r'; (2 分)
(2) int(lis[0][i]) + int(lis[1][i]) + int(lis[2][i])。 (2 分) (没有 int 给 1 分)