Python中的平方根计算

-6 投票
4 回答
3817 浏览
提问于 2025-04-17 18:34

这是我的代码:

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

我遇到的问题是,结果是5+0j,这个结果我不想要,我只想要平方根。请问我该怎么解决这个问题呢?

4 个回答

0

结果是正确的!

这是因为你使用了复杂数学库来计算平方根。

毕竟,

5+0j

这是25的复杂平方根:

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

要计算“普通”的平方根,可以使用math模块。

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

root.real

一般来说,你可能想用复杂数而不是自然数,这样可以更通用,并且有助于发现数学错误——但这又是另一个话题。

3

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

那么这个 j 是从哪里来的呢?这是因为你在使用复数数学库(cmath),所以它是隐含的。

如果你只想要复数的 实数 部分,可以这样做:

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

最后,如果你只想处理实数,那就使用 math 库。

6

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

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

说实话,如果你期待的是一个复杂数字,那么 cmath 的结果是正确的。你可以只取结果中的 .real 部分,但因为在 math 模块中有一个普通的浮点数对应,所以让电脑多做这一步其实没必要。

撰写回答