嗨,伙计们,我试过运行这段代码,它在大多数测试中都失败了,我不知道问题出在哪里
#!/bin/python
import math
import os
import random
import re
import sys
# write your code here
def avg(*num):
if len(num)==0:
return None
sum=0
for i in num:
sum=sum+i
moy=sum/len(num)
return(moy)
if __name__ == '__main__':
fptr = open(os.environ['OUTPUT_PATH'], 'w')
nums = map(int, raw_input().split())
res = avg(*nums)
fptr.write('%.2f' % res + '\n')
fptr.close()
请改用此函数
sum=0
-您正在使用^{moy=sum/len(num)
-这一行浪费了Python编译器的大量时间,因为您要求它从第一次迭代到最后一次迭代执行计算,在最后一次迭代中,只需要计算所有数字之和时的最后一次迭代才能找到平均数moy=sum/len(num)
-当应用于整数时,标准除法符号(/
)在Python 3和Python 2中的操作不同在Python3中,将一个整数除以另一个整数时,除法运算
x / y
表示一个真除法(使用__truediv__
方法)并生成浮点结果。同时,Python2中的相同操作表示一个经典的除法,它将结果向下舍入到负无穷大(也称为发言)也就是说,Python2中的
5/2
是2.00
,而Python3中的2.50
最好使用typecast:
float()
-此函数用于将任何数据类型转换为浮点数固定代码:
相关问题 更多 >
编程相关推荐