练习一:
当前目录下有一个文件名为 score1.txt 的文本文件,存放着某班学生的计算机课成绩,共有学号、平时成绩、期末成绩三列。请根据平时成绩占 40%,期末成绩占 60%的比例计算总评成绩(取整数) ,并分学号、总评成绩两列写入另一文件 score2.txt 。同时在屏幕上输出学生总人数, 按总评成绩计 90 以上、80~89、70~79、60~69、60 分以下各成绩档的人数 和班级总平均分(取整数) 。
# -*- coding:utf-8 -*-
f = open("score1.txt")
a = f.readline()
line = (f.readline()).strip()
f2 = open("score2.txt",'w')
f2.write("学号 平均成绩\n")
L2 = [0,0,0,0,0]
count = 0
sum = 0
while (len(line) != 0):
L1 = line.split()
f2.write(L1[0]+" ")
f_score = int(int(L1[1])*0.4+int(L1[2])*0.6)
if 90<f_score <=100:
L2[0] += 1
elif f_score >=80:
L2[1] += 1
elif f_score >=70:
L2[2] += 1
elif f_score >=60:
L2[3] += 1
else :
L2[4] += 1
count += 1
sum += f_score
f2.write(str(f_score)+"\n")
line = (f.readline().strip())
f.close()
f2.close()
avg_score = int(sum/count)
print("学生总人数为{0},按总评成绩计,90以上{1}人,80-90有{2}人,70-80有{3}人,60-70有{4}人,60以下有{5}人,班级总平均分为{6}".format(count,L2[0],L2[1],L2[2],L2[3],L2[4],avg_score))
Demo:
score1.txt
学号 平时成绩 期末成绩
170691501 90 91
170691502 60 70
170691503 85 60
170691504 80 75
170691505 95 60
170691506 95 100
170691507 60 40
Result: