| 
 小明在帮助老师统计成绩,老师给他的是一组数据。数据的第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))
 
  
    |