这个题开始提交的时候测试点2显示错误,是因为这个测试的是当正确的数字只有一个时的情况,我在题目中读到然后自己理解的是直接输出原数,不需要进行两位的输出,但是显示错误,而在改为了输出两位小数后就通过了。只能说是理解力不行。
#判断数据是否合法
def have_judge(my_num):
try:
my_num = float(my_num)
if my_num >= -1000.0 and my_num <= 1000.0:
my_num = str(my_num)
fir, last = my_num.split('.')
length = len(last)
if length > 2:
return False #精度小数位数超过2位
else:
return True
else:
return False #不在指定的范围内
except ValueError:
return False #不是数字
num = input()
num = int(num)
string = input().split()
sum = 0
count = 0
for i in range(num):
judge = have_judge(string[i])
if judge:
count += 1
sum += float(string[i])
else:
#输出错误的数据
print('ERROR: ' + string[i] + ' is not a legal number')
#对于各种情况分别输出
if count == 1:
print('The average of 1 number is %.2f'%sum)
elif count == 0:
print('The average of 0 numbers is Undefined')
else:
resulst = sum / count
print('The average of ' + str(count) + ' numbers is %.2f'%resulst)