Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 790|回复: 0

7-9 jmu-python-异常-学生成绩处理专业版 (25 分)

[复制链接]
  • TA的每日心情
    奋斗
    2024-11-24 15:47
  • 签到天数: 804 天

    [LV.10]以坛为家III

    2053

    主题

    2111

    帖子

    72万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    726782
    发表于 2021-5-10 20:15:53 | 显示全部楼层 |阅读模式

    小明在帮助老师统计成绩,老师给他的是一组数据。数据的第1行代表学生数n,后面
    的n行代表每个学生的成绩。成绩是整数类型。小明编写了一个程序,该程序可以批量
    处理数据,统计所有学生的平均分。当数据没有任何错误时,提示'All OK',当数据有
    一些错误(某行是浮点数、某行是非整数字符)时,可以提示哪些数据出错,并最后提示
    第几行出错,出错的原因,共出错多少行。对于另一些小错误,如某行虽然是整数,但
    是左右有多余的空格,可以将空格去除掉进行正常统计。

    在最后输出:
    共处理多少行数据,几行正确,几行错误,平均成绩(保留两位小数)。

    进阶要求:
    有可能碰到要求输入n行,后面的数据却小于n行。要求处理这种情况。碰到这种情况。
    输出end of files,并统计现有行数。见样例3

    输入格式:

    第1行为n
    接下来输入<=n行数据进行测试

    输出格式:

    见样例输出。输出错误原因的时候,需要将整行输出(如果该行有左右空格,需要将左右空格也输出)

    输入样例1:

    3
    1
        2    
    3
    

    输出样例1:

    Total: 3
    OK: 3
    Error: 0
    avg grade = 2.00
    

    输入样例2:

    5
    1
      2
       a  
      b  5
    3
    

    输出样例2:

    line 3 error for input "   a  "
    line 4 error for input "  b  5"
    Total: 5
    OK: 3
    Error: 2
    avg grade = 2.00
    

    输入样例3:

    5
     a
     2    
    3
    

    输出样例3:

    line 1 error for input " a"
    end of files
    Total: 3
    OK: 2
    Error: 1
    avg grade = 2.50
    

    提示:对于样例3,如果是在IDLE中进行测试,可在输入最后一行并回车后,按'Ctrl+D'结束输入。

    n=int(input())
    sum=0
    flag=0
    temp=n
    count=0
    count1=0
    l=[]
    while True:
        try:
            l.append(input())
        except:
            break
    for i in range(len(l)):
        count+=1
        a=0
        a=l
        try:
            a=int(a)
            sum=sum+a
            count1+=1
        except:
            print('line {} error for input "{}"'.format(count,a))
            flag+=1
    #if flag==0:
        #print("All OK")
    if count<n:
        print("end of files")
    print("Total: {}".format(len(l)))
    print("OK: {}".format(count1))
    print("Error: {}".format(flag))
    print("avg grade = {:.2f}".format(sum/count1))
    

      

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-12-23 03:42 , Processed in 0.055019 second(s), 27 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表