def sqrt(number):
number = root**2
return root
def area_triangle(a, b, c):
x = (a+b+c)/2
result = x*(x-a)*(x-b)*(x-c)
print (sqrt(result))
area_triangle(4,5,6)
这给了我一个名称错误,“NameError: name 'root' is not defined”
我想在没有 math.sqrt 或root = number**(1/2) 的情况下执行此操作 如果不使用这两个,我该如何解决这个问题?如果我使用替代方法,为什么不会出现与“NameError: name 'number' is not defined”相同的错误?
请您参考如下方法:
Python 不像 Wolfram Alpha 那样是方程式求解器。它是一种执行您给它的指令的语言。
root = number**(1/2)
是一条指令。它说:将已经存在的 number 提高到 1/2 次方;将结果命名为 root。
number = root**2
也是一条指令,但不是您想要的指令。它说:将应该已经存在的 root 提高到 2 次方;将结果命名为 number。但是 root 实际上并不存在,所以你会得到一个错误。
您提供的两个选项是求平方根最明智的选择 - 不确定您为什么要避免使用它们。当然,您可以自己实现求平方根算法,但使用内置解决方案肯定更直接!可以使用 number**(.5) 或 math.pow(number,1/2)(当然,这等同于您的 1/2).
