数字python的平方根

时间:2013-03-10 12:18:39

标签: python square-root math.sqrt

这是我的代码:

import cmath
root = (cmath.sqrt(25))
print (root)
raw_input()

我面临的问题是root的结果是5 + 0j,这是不可取的,我只想要平方根。我该如何解决这个问题?

4 个答案:

答案 0 :(得分:6)

使用math模块而不是cmath模块;后者仅用于复数:

>>> import math
>>> print math.sqrt(25)
5.0

对于它的价值,cmath结果是正确的,如果您期望复数。您可以只获取结果的.real组件,但由于math模块中存在等效的常规浮点,因此您的计算机无需执行额外的工作。

答案 1 :(得分:3)

结果本身是正确的。 25 + 0j的平方根为5 + 0j

j来自哪里?它是隐含的,因为您正在使用复杂的数学(cmath)库。

如果您只想要复数的 real 部分,请执行以下操作:

>>> root = (cmath.sqrt(25))
>>> root.real
5.0

最后,如果您只想处理实数,请使用math库。

答案 2 :(得分:0)

结果是正确的!

那是因为您正在使用复杂的数学库来查找平方根。

毕竟,

5+0j

是25的复数平方根:

(5+0j)*(5+0j) = 25 + 2*0j + (0j)^2 = 25 + 0 + 0 = 25

使用math模块代替“常规”平方根。

或者:通过以下方式访问实际部分:

root.real

通常,您可能希望使用复数而不是自然数来表示一般性和数学错误检测 - 但这是另一种讨论。

答案 3 :(得分:0)

cmath适用于复数,而不是实数。应该可以!

import math
import cmath
def sqrt(n):
    if n < 0:
        return cmath.sqrt(n)
    else:
        return math.sqrt(n)