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

  • 16
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烟敛寒林o

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值