小明在帮助老师统计成绩,老师给他的是一组数据。数据的第1行代表学生数n,后面
的n行代表每个学生的成绩。成绩是整数类型。小明编写了一个程序,该程序可以批量
处理数据,统计所有学生的平均分。当数据没有任何错误时,提示'All OK',当数据有
一些错误(某行是浮点数、某行是非整数字符)时,可以提示哪些数据出错,并最后提示
第几行出错,出错的原因,共出错多少行。对于另一些小错误,如某行虽然是整数,但
是左右有多余的空格,可以将空格去除掉进行正常统计。
在最后输出:
共处理多少行数据,几行正确,几行错误,平均成绩(保留两位小数)。
进阶要求:
有可能碰到要求输入n行,后面的数据却小于n行。要求处理这种情况。碰到这种情况。
输出end of files
,并统计现有行数。见样例3
输入格式:
第1行为n
接下来输入<=n行数据进行测试
输出格式:
见样例输出。输出错误原因的时候,需要将整行输出(如果该行有左右空格,需要将左右空格也输出)
# 从输入中读取一个整数n,表示有n行成绩需要统计
n = int(input())
# 初始化变量sum和count,用于记录所有成绩的总和和个数
sum = 0
count = 0
# 初始化变量error_count和error_lines,用于记录错误的个数和行号
error_count = 0
error_lines = []
# 循环读入成绩,并进行处理
for i in range(n):
# 从输入中读取一行字符串s,代表一个成绩
s = input().strip()
# 如果s不是整数,则输出错误信息并将其添加到错误列表中
if not s.isdigit():
error_count += 1
error_lines.append((i+1, s))
else:
# 将s转换为整数,并累加到sum中
x = int(s)
sum += x
# 计数器加1
count += 1
# 输出提示信息和平均值
print("共处理了{}行数据".format(n))
print("其中:")
print(" - {}行正确".format(count))
if error_count > 0:
print(" - {}行错误".format(error_count))
for line in error_lines:
print(" * 第{}行:{}".format(line[0], line[1]))
else:
print(" - 没有错误")
if count > 0:
print("平均成绩为:{:.2f}".format(sum/count))
else:
print("没有正确的成绩")