TypeError:“浮动”对象不可调用

新手上路,请多包涵

我正在尝试在以下等式中使用数组中的值:

 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

这可能很简单,但我无法弄清楚。任何帮助将不胜感激。提前致谢

原文由 Corey 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 716
2 个回答

缺少一个运算符,可能是 *

 -3.7 need_something_here (prof[x])

“ _不可调用_”的出现是因为括号 - 并且缺少将括号切换为优先运算符的运算符 - 使 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 --^

原文由 user166390 发布,翻译遵循 CC BY-SA 4.0 许可协议

问题在于 -3.7(prof[x]) ,它看起来像一个函数调用(注意括号)。只需像这样使用 * -3.7*prof[x]

原文由 Joel Burget 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题