Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 找到一个三角形';s区域导致错误:';浮动';对象不可调用_Python_Trigonometry_Area - Fatal编程技术网

Python 找到一个三角形';s区域导致错误:';浮动';对象不可调用

Python 找到一个三角形';s区域导致错误:';浮动';对象不可调用,python,trigonometry,area,Python,Trigonometry,Area,我正在创建一个测试程序,以找到像这样的3d三角形的面积: 我有一个问题与最后一行,我希望是完美的,但在一个类型错误的结果 我最后发现我只设置了1个参数,需要2个。 我不知道如何使用谷歌,因为这是一个特定的问题。 主要功能是: def triangle3d(width, height): triangle2d = width*height/2 length = math.cos(random.randint(3, 5)) triangle3d = triangle2d*le

我正在创建一个测试程序,以找到像这样的3d三角形的面积: 我有一个问题与最后一行,我希望是完美的,但在一个类型错误的结果

我最后发现我只设置了1个参数,需要2个。 我不知道如何使用谷歌,因为这是一个特定的问题。 主要功能是:

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
回溯(最近一次呼叫最后一次):
文件“C:/Users/Public/test.py”,第11行,在
打印(三角形3D(2,4))
文件“C:/Users/Public/test.py”,第9行,三角形3D
返回三角形3D(三角形3D,三角形3D-2)
TypeError:“float”对象不可调用

谢谢

在您指定的函数中

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

但是,如果您只是重命名局部变量,您将遇到一个
RecrusionError


您的
长度可以是负数。这就是您所期望的吗?

在您分配的函数中

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

但是,如果您只是重命名局部变量,您将遇到一个
RecrusionError


您的
长度可以是负数。这就是您所期望的吗?

您的一个局部变量与您的函数同名。因此它屏蔽了函数,阻止了任何递归调用。但问题远不止这些。如果没有名称冲突,就会有无限递归。因此,您需要重新考虑要做什么。不要使用与函数名相同的变量名(
triangle3d
)。为什么有相同的名字?它有特定的目的吗?如果不是,那就是一个严重的错误。你的一个局部变量与你的函数同名。因此它屏蔽了函数,阻止了任何递归调用。但问题远不止这些。如果没有名称冲突,就会有无限递归。因此,您需要重新考虑要做什么。不要使用与函数名相同的变量名(
triangle3d
)。为什么有相同的名字?它有特定的目的吗?如果不是,那就是一个严重的错误。