Findind一个三角形的区域会导致错误:“浮动”对象不可调用

时间:2019-07-10 11:15:12

标签: python trigonometry area

我正在创建一个测试程序来查找像这样的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

谢谢!

1 个答案:

答案 0 :(得分:2)

在您分配的功能中

triangle3d = triangle2d*length

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

return triangle3d(triangle3d, triangle3d-2)

但是如果您只是重命名本地变量,则会遇到RecrusionError ...

您的length可以为负。那是你期望的吗?