不知道出了什么问题stddev func行无法解决它,请您指教一下 TypeError:-:“ tuple”和“ float”的不受支持的操作数类型

问题描述

因此,我试图定义函数以计算给定系列数字的均值和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]