这段代码可以很好地找到它引用的文件中数字的平均值,但是我似乎无法让它找到标准偏差。 标准差公式为:平方根/(n1-a)^2+(n2-a)^2/m
-一切都在平方根之下我找不到它的特征
-N1,N2…..Nm=参考列表中的数字
-a=平均值
-m=列表中的总数
这是我所拥有的
def main():
numbersFile=open("RandomNumber.txt" , 'r')
line=numbersFile.readline()
total=0
numberoflines=0
while line != "":
numberoflines+=1
total+=int(line)
line=numbersFile.readline().strip()
average=total/numberoflines
std=line-average
deviation=(std**2)/numberoflines
print("The average is: " , average)
print("The standard deviation of the numbers is: " , deviation)
main()
看看这个关于try/except和isdigit()的question,然后 在计算偏差之前,对float进行一些强制转换,如下所示:
还要记住,您的
line=numbersFile.readline()
中的行可能包含不是数字的字符,请仔细检查您的输入。因为您在std=line-average
中使用了行,并且您确信平均值是正确的,所以问题在于行,而std得到了错误的值。在要计算的正确源代码:
您的
line
变量是file.readline()
返回的字符串。您需要先将其转换为float
,然后才能使用另一个浮点执行减法。在更改:
收件人:
^{pr2}$相关问题 更多 >
编程相关推荐