当前目录下有一个文件名为 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:

当前目录下有一个文件名为 class_score.txt 的文本文件,存放着某班学生的学号、数学课成绩(第 2 列)和语文课成绩(第 3 列)。请编程完成下列要求。_第1张图片

你可能感兴趣的:(★,Python)