刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

张老师手上有一份学生成绩单(cj.txt),成绩单上只有每位学生的各科成绩,而张老师希望能看到各科成绩的所有学生的平均分,以下代码可以实现平均分的计算,并按示例格式排版,请补充代码。


示例:undefined

undefined

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)

解析:

【喵呜刷题小喵解析】:首先,我们打开文件`/data/cj.txt`,以只读的方式读取文件内容,并将内容读取为字符串。然后,我们使用换行符`\n`将字符串分割为列表,并去掉列表的第一个元素(标题部分)。接着,我们遍历列表中的每个元素,使用制表符`\t`将每个元素分割为子列表,并将这些子列表添加到二维列表`lis`中。我们定义一个新的列表`lis1`,用于存储计算出的平均分。在循环中,我们计算三个学生的成绩之和,然后计算平均分,将平均分转换为字符串,并追加到`lis1`中。最后,我们将`lis1`中的元素连接成字符串,并追加到原始字符串`string`的末尾,得到新的字符串`res`。最后,我们以写入的方式打开文件`cj1.txt`,并将`res`写入文件中。这样,我们就完成了计算平均分的任务,并将结果写入文件`cj1.txt`中。
创作类型:
原创

本文链接:张老师手上有一份学生成绩单(cj.txt),成绩单上只有每位学生的各科成绩,而张老师希望能看到各科成

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share