我如何使这个pythag定理起作用?

时间:2013-11-19 01:04:24

标签: python

定义一个函数hypotenuse(a, b),如果其他两边的长度为ca,则返回斜边b的长度。

import math
def hypotenuse(a, b):
   print(b = (math.sqrt((a**2)-(b**2)))

2 个答案:

答案 0 :(得分:2)

def hypotenuse(a, b):
    return math.sqrt((a**2) + (b**2))   # ... SUM of the squares ...

但是,由于您要导入math,为什么不

def hypotenuse(a, b)
    return math.hypot(a, b)

答案 1 :(得分:1)

第一个问题是您无法在Python中为表达式分配变量。

我不确定你为什么要首先以这种方式重新分配b。但是如果你愿意,你必须将它移到自己的声明中。 (虽然我们正在使用它,但我将删除两层多余的parens并添加一些空格以使其更具可读性。)

b = math.sqrt(a**2 - b**2)
print(b)

如果想要(因为你还没有做任何事情),那就不要这样做了:

print(math.sqrt(a**2 - b**2))

第二个问题是你实际上并没有return任何东西,只是print出了问题。如果您在没有return语句的情况下脱离函数的末尾,则返回None。所以,改成它:

return math.sqrt(a**2 - b**2)

正如gnibbler解释的那样,你的第三个问题是你的算法错了。斜边的平方是正方形的,而不是差异。所以:

return math.sqrt(a**2 + b**2)