有一份成绩单,需要计算每个学生的平均分,并添加在每一行的末尾
def get_data():
f = open('a.txt', 'r', encoding='utf-8')
d = f.read()
f.close()
return d
def get_score(d):
qname = input('输入姓名')
qstatus = False
for i in d.split('\n')[1::]:
xuehao, name, yuwei, shuxue, yingyu = [j.strip() for j in i.split(' ') if j]
if qname == name:
print(f'姓名{name},学号{xuehao},语文{yuwei},数学{shuxue},英语{yingyu}')
qstatus = True
if qstatus is False:
print('无此人成绩信息')
def get_everyone(d):
data_list = []
for i in d.split('\n')[1::]:
xuehao, name, yuwei, shuxue, yingyu = [j.strip() for j in i.split(' ') if j]
avg = (int(yuwei) + int(shuxue) + int(yingyu)) / 3
print(f'学生:{name},语文{yuwei},数学{shuxue},英语{yingyu},平均分{avg}')
data_list.append([xuehao, name, yuwei, shuxue, yingyu, avg])
# 写入新的文件
f = open('new.txt', 'w', encoding='utf-8')
f.write('学号 姓名 语文 数学 英语\n')
for i in data_list:
f.write(' '.join([str(j) for j in i]))
f.write('\n')
f.close()
if __name__ == '__main__':
d = get_data()
print('人员总数', len(d.split('\n'))-1)
get_score(d)
get_everyone(d)
Excel吗?数据示例方便看看?