我正在创建一个测试程序来查找像这样的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
谢谢!
答案 0 :(得分:2)
在您分配的功能中
triangle3d = triangle2d*length
仅在以后尝试调用它(这是引发错误的地方)
return triangle3d(triangle3d, triangle3d-2)
但是如果您只是重命名本地变量,则会遇到RecrusionError
...
您的length
可以为负。那是你期望的吗?