studlst = [['ABDIHAFITH', 8, 16, 19, 20, 3, 25, 16, 2, 9], ['ADAM', 12, 9, 17, 24, 13, 6, 15, 13, 30]
spearman = []
dsquare = 0.0
count = 0
i = 0
while i < len(studlst):
dsquare += (studlst[i][1] - studlst[i][count+2])**2
i += 1
if i == len(studlst):
count += 1
spear = 1-((6*dsquare)/(len(studlst)(len(studlst)**2-1)))
spearman.append(spear)
if len(spearman) == (len(studlst[0])-2):
break
i = 0
dsquare = 0
我一直收到错误“TypeError:“int”对象不可调用”。对于创建矛值的行(精子等级相关性)。我尝试将该行上的两个len(studlst)转换为float,但用int替换float时返回相同的错误。我该怎么办?谢谢
编辑: 这个问题源于错误的语法,应该乘以len(studlst)和括号
在代码中,部分
(len(studlst)(len(studlst)**2-1))
计算结果为
int(some_value)
,因为(len(studlst)
将给您一个int
,而(len(studlst)**2-1)
将是一些值因此,您将
int(some_value)
作为代码的最终产品,这意味着您将int
视为某种函数,并使用类似的值调用它foo(x): pass
然后
foo(0)
这就是问题的根源。如果您打算乘法,则将等式更改为
(len(studlst) * (len(studlst)**2-1))
这一部分看起来有问题:
len
生成一个int,下面的括号表达式被解析为调用如果您打算购买产品,请使用*运算符:
相关问题 更多 >
编程相关推荐