我正在尝试使用以下等式中的数组值:
for x in range(len(prof)):
PB = 2.25 * (1 - math.pow(math.e, (-3.7(prof[x])/2.25))) * (math.e, (0/2.25)))
当我跑步时,我收到以下错误:
Traceback (most recent call last):
File "C:/Users/cwpapine/Desktop/1mPro_Chlavg", line 240, in <module>
PB = float(2.25 * (1 - math.pow(math.e, (-3.7(prof[x])/2.25))) * (math.e, (0/2.25)))
TypeError: 'float' object is not callable
这可能很简单,但我无法弄明白。任何帮助都会 非常感激。提前致谢
答案 0 :(得分:25)
有一个操作员缺失,可能是*
:
-3.7 need_something_here (prof[x])
“is not callable ”的出现是因为括号 - 以及缺少将括号切换为优先运算符的运算符 - 使Python尝试调用 -3.7
(浮点数)作为函数的结果,这是不允许的。
在这种情况下也不需要括号,以下可能就足够/正确:
-3.7 * prof[x]
快乐的编码。
正如Legolas所指出的,还有其他一些事情可能需要解决:
2.25 * (1 - math.pow(math.e, (-3.7(prof[x])/2.25))) * (math.e, (0/2.25)))
^-- op missing
extra parenthesis --^
valid but questionable float*tuple --^
expression yields 0.0 always --^
答案 1 :(得分:3)
问题在于-3.7(prof[x])
,它看起来像一个函数调用(注意父项)。只需使用*
这样的-3.7*prof[x]
。
答案 2 :(得分:2)
全部因为'( - 3.7(prof [x])' - 例如你错过了算子。
答案 3 :(得分:2)
您忘记了*
和-3.7
之间的(prof[x])
。
因此:
for x in range(len(prof)):
PB = 2.25 * (1 - math.pow(math.e, (-3.7 * (prof[x])/2.25))) * (math.e, (0/2.25)))
此外,似乎缺少(
,因为我计算了6次(
和7次)
,我认为(math.e, (0/2.25))
缺少函数调用(可能math.pow
,但这只是一个疯狂的猜测。)