小明在幫助老師統計成績,老師給他的是一組數據。數據的第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[i]
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))
