测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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 分)

上一题 下一题