Skip to main content
 首页 » 编程设计

python之条件为负整数

2025年05月04日9exmyth

我正在定义一个计算列表标准偏差的函数。有时这个列表的平均值是负数,所以我的函数不能取负数的平方根,返回一个错误。

这个看似简单,就是想不出来。我想为我的函数写一个条件,说如果有一个负数,则乘以 -1,因为不能取负数的平方根。

我该如何写这个声明?

def stdevValue(lst): 
"""calculates the standard deviation of a list of numbers 
input: list of numbers 
output: float that is the standard deviation 
""" 
    stdev = 0 
    stdevCalc = (((sum(lst) - (meanValue(x)))/(len(lst)-1)))**0.5 
    stdev += stdevCalc 
    return stdev 

请您参考如下方法:

您似乎误用了标准差公式。您根本不需要处理负数平方根的情况。在求和之前,您需要对值与平均值之间的每个差值进行平方,如下所示:

def stdevValue(lst): 
    m = meanValue(x) # wherever this comes from 
    return (sum((x - m) ** 2 for x in lst) / len(lst)) ** 0.5 

这确保总和是非负,因此您可以取平方根而不用担心负值。 (如果您想要样本标准偏差,请除以 (len(lst) - 1))。

请参阅关于 Standard Deviation 的维基百科文章获取更多信息和示例。