14

所以,我想做的是从给定 > 范围的数组中的某些位置获取某些数字并将它们放入一个方程

yy = arange(4)
xx = arange(5)
Area = ((xx[2] - xx[1])(yy[2] + yy[1])) / 2

我尝试运行它,我得到了这个..

----> ((xx[2] - xx[1])(yy[2] + yy[1])) / 2
TypeError: 'numpy.int64' object is not callable

我得到错误..如何在数组中使用某些数字并将它们放入等式中?

4

4 回答 4

28

Python 不遵循与书面数学相同的规则。您必须明确指出乘法。

坏的:

(a)(b)

(除非a是函数)

好的:

(a) * (b)
于 2013-11-07T04:53:38.167 回答
15

当您的函数与返回值同名时,也会发生此错误

def samename(a, b):
    samename = a*b
    return samename

这可能是一个超级新手错误,我很好奇这个答案多久会有帮助。

于 2019-08-14T15:25:39.903 回答
9

乘法时您丢失了*,请尝试:

import numpy as np
yy = np.arange(4)
xx = np.arange(5)
Area = ((xx[2] - xx[1])*(yy[2] + yy[1])) / 2
于 2013-11-07T04:53:57.037 回答
3

这可能是因为您覆盖了您尝试调用的函数的名称。

例如:

def x():
    print("hello world")
...
x = 10.5
...
x()
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
 in 
      2     print("hello world")
      3 x = 10.5
----> 4 x()

TypeError: 'float' object is not callable
于 2020-06-16T19:37:59.130 回答