Findind a triangle's area results in a error:'float' object is not callable

Findind a triangle's area results in a error:'float' object is not callable

我正在创建一个测试程序来计算 3d 三角形的面积,如下所示: this one 我在最后一行遇到了问题,我希望它是完美的,但在类型错误中出现了问题。

我终于发现我只设置了1个参数,而且需要2个。 我不知道如何使用 google 因为这是一个特定的问题。 主要功能是这样的:

def triangle3d(width, height):
    triangle2d = width*height/2
    length = math.cos(random.randint(3, 5))
    triangle3d = triangle2d*length
    assert (width*height*length)/2 == triangle3d;
    return triangle3d(triangle3d, triangle3d-2)
print(triangle3d(2, 4))

我原以为它只会打印出一个数字,但结果出现了一条错误消息:

Traceback (most recent call last):
  File "C:/Users/Public/test.py", line 11, in <module>
    print(triangle3d(2, 4))
  File "C:/Users/Public/test.py", line 9, in triangle3d
    return triangle3d(triangle3d, triangle3d-2)
TypeError: 'float' object is not callable

谢谢!

在你的函数中你赋值

triangle3d = triangle2d*length

稍后尝试调用它(这是引发错误的地方)

return triangle3d(triangle3d, triangle3d-2)

但是如果您只是重命名局部变量,您将 运行 变成 RecrusionError...

你的length可以是负数。这就是你所期望的吗?