问题描述
因此,我试图定义函数以计算给定系列数字的均值和st.dev(无软件包),并且该函数还必须至少提供2个数字,其中* arg表示我可以使用任何列表的数字> 1
def avg(x,y,* arg): 如果len(arg)
def stddev(x,y,*arg):
mu = (x+y)/2 if len(arg)<1 else (x+y+sum(arg))/(2+len(arg))
return ([x - mu] ** 2/len(arg))**0.5
解决方法
[x - mu] ** 2/len(arg)
将引发错误,因为仅对int / float列表无效(使用**)。同样,函数的可选参数也应列为** args,例如:def avg(x,y,**args):
。 x传递到stddev()时应为浮点数,或者如果从列表中减去标量,则应使用类似以下内容的方法:[ele - mu for ele in x]