Skip to main content
 首页 » 编程设计

python之没有 math.sqrt 的数字的平方根

2025年05月04日18jirigala

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).