当前目录下有一个文件名为score1.txtscore1.txt的文本文件,存放着某班学生的Python课程成绩,共有学号、姓名、平时成绩、期末成绩四列。请根据平时成绩占30%,期末成绩占70%的比例计算总评成绩(int()函数取整数),并分学号、姓名、总评成绩三列中间用一个空格间隔写入另一文件score2.txt。同时在屏幕上输出学生总人数,按总评成绩计90以上、80~89、70~79、60~69、60分以下各成绩档的人数和班级总平均分(int()函数取整数)。
时间: 2023-06-24 11:09:12 浏览: 932
以下是Python代码实现:
```python
# 打开score1.txt文件
with open('score1.txt', 'r') as f1:
lines = f1.readlines() # 读取所有行数据
# 计算总评成绩并写入score2.txt文件
with open('score2.txt', 'w') as f2:
for line in lines:
data = line.split() # 按空格分割每行数据
stu_id, name, daily_score, final_score = data[0], data[1], int(data[2]), int(data[3])
total_score = int(daily_score * 0.3 + final_score * 0.7) # 计算总评成绩
f2.write('{} {} {}\n'.format(stu_id, name, total_score)) # 写入score2.txt文件
# 统计各成绩档的人数和总平均分
total_num = len(lines) # 学生总人数
num_90_above, num_80_89, num_70_79, num_60_69, num_below_60 = 0, 0, 0, 0, 0 # 各成绩档的人数
total_score_sum = 0 # 总分数和
for line in lines:
data = line.split() # 按空格分割每行数据
total_score = int(data[2] * 0.3 + data[3] * 0.7) # 计算总评成绩
if total_score >= 90:
num_90_above += 1
elif total_score >= 80:
num_80_89 += 1
elif total_score >= 70:
num_70_79 += 1
elif total_score >= 60:
num_60_69 += 1
else:
num_below_60 += 1
total_score_sum += total_score # 累加总分数和
# 计算班级总平均分
class_avg_score = int(total_score_sum / total_num)
# 输出统计结果
print('学生总人数为:{}'.format(total_num))
print('90分以上的人数为:{}'.format(num_90_above))
print('80~89分的人数为:{}'.format(num_80_89))
print('70~79分的人数为:{}'.format(num_70_79))
print('60~69分的人数为:{}'.format(num_60_69))
print('60分以下的人数为:{}'.format(num_below_60))
print('班级总平均分为:{}'.format(class_avg_score))
```
注意:上述代码中,我们假设score1.txt文件中的每行数据都是按学号、姓名、平时成绩、期末成绩的顺序排列的,并且每列数据之间都用一个空格分隔。如果实际情况不同,需要根据实际情况进行代码修改。
阅读全文