当前目录下有一个文件名为score1.txtscore1.txt的文本文件,存放着某班学生的Python课程成绩,共有学号、姓名、平时成绩、期末成绩四列。请根据平时成绩占30%,期末成绩占70%的比例计算总评成绩(int()函数取整数),并分学号、姓名、总评成绩三列中间用一个空格间隔写入另一文件score2.txt。同时在屏幕上输出学生总人数,按总评成绩计90以上、80~89、70~79、60~69、60分以下各成绩档的人数和班级总平均分(int()函数取整数)。
时间: 2023-07-04 19:03:21 浏览: 186
以下是Python代码实现:
```python
# 打开score1.txt文件
with open('score1.txt', 'r') as f:
lines = f.readlines()
# 定义各成绩档的人数变量和总分变量
count_90 = 0
count_80_89 = 0
count_70_79 = 0
count_60_69 = 0
count_below_60 = 0
total_score = 0
# 遍历每行成绩
for line in lines:
# 分割每行成绩,得到学号、姓名、平时成绩、期末成绩
items = line.strip().split()
student_id, name, daily_score, final_score = items
# 计算总评成绩
total_score = int(daily_score) * 0.3 + int(final_score) * 0.7
# 根据总评成绩归类人数
if total_score >= 90:
count_90 += 1
elif 80 <= total_score <= 89:
count_80_89 += 1
elif 70 <= total_score <= 79:
count_70_79 += 1
elif 60 <= total_score <= 69:
count_60_69 += 1
else:
count_below_60 += 1
# 写入score2.txt文件
with open('score2.txt', 'a') as f:
f.write(f"{student_id} {name} {int(total_score)}\n")
# 计算班级总平均分
class_average = int(total_score / len(lines))
# 输出各成绩档的人数和班级总平均分
print(f"90分及以上:{count_90}人")
print(f"80~89分:{count_80_89}人")
print(f"70~79分:{count_70_79}人")
print(f"60~69分:{count_60_69}人")
print(f"60分以下:{count_below_60}人")
print(f"班级总平均分:{class_average}")
```
需要注意的是,每次运行程序时,如果score2.txt文件已经存在,程序会在文件末尾追加内容。如果需要清空文件重新写入,请在程序开始时添加如下代码:
```python
# 清空score2.txt文件
with open('score2.txt', 'w') as f:
f.write('')
```
阅读全文