当前目录下有一个文件名为-class_score.txt-的文本文件,存放着某班学生的学号数学课成绩第-2-列和语文课成绩第-3-列请编程完成下列要求
目录
当前目录下有一个文件名为 class_score.txt 的文本文件,存放着某班学生的学号、数学课成绩(第 2 列)和语文课成绩(第 3 列)。请编程完成下列要求。
**练习三:当前目录下有一个文件名为 class_score.txt 的文本文件,存放着某班学生的学号、数学课成绩(第 2 列)和语文课成绩(第 3 列)。请编程完成下列要求:
(1)分别求这个班数学和语文的平均分(保留 1 位小数)并输出。
(2)找出两门课都不及格( <60)的学生,输出他们的学号和各科成绩。
(3)找出两门课的平均分在 90 分以上的学生, 输出他们的学号和各科成绩。**
# -*- coding:utf-8 -*-
def output_avg(L):
sum1,sum2=0,0
for line in L:
L1 = line.strip().split()
sum1 += int(L1[1])
sum2 += int(L1[2])
count = len(L)
avg1 = round(sum1/count,1)
avg2 = round(sum2/count,1)
print("这个班数学平均成绩为:%4.1f"%avg1)
print("这个班语文平均成绩为:%4.1f"%avg2)
def output_notpass(L):
print "两门成绩均不及格的学生学号、数学和语文成绩为:"
for line in L:
L1 = line.strip().split()
if int(L1[1])<60 and int(L1[2])<60:
print(line)
def output_good(L):
print "两门课平均分在90以上的学生学号、数学和语文成绩为:"
for line in L:
L1 = line.strip().split()
f_score = round((int(L1[1])+int(L1[2]))/2)
if f_score>=90:
print(line)
f = open("class_score.txt")
L = f.readlines()
del L[0]
output_avg(L)
output_notpass(L)
output_good(L)
Demo:
class_score.txt
学号 数学课成绩 语文课成绩
170691501 89 90
170691502 60 98
170691503 85 60
170691504 40 75
170691505 98 22
170691506 95 100
170691507 60 40
170691508 25 40
Result: