pow错误:"无法将复数转换为浮动"

时间:2016-08-02 21:21:43

标签: python math

我的Python代码存在这个问题:

from math import *

m = pow(complex(1,2)*complex(3,0) + complex(1,0),complex(-1,0));
TypeError: can't convert complex to float

有谁知道如何解决这个问题? 非常感谢!

1 个答案:

答案 0 :(得分:2)

问题是您使用的是from math import *。这会使内置的pow隐藏version that doesn't support complex numbers

>>> pow(1+1j, 1)
(1+1j)
>>> import math
>>> math.pow(1+1j,2)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can't convert complex to float

from <x> import *通常被认为是不好的做法,这样的情况就是原因。

相反,您应该使用import math,并引用所有数学函数,例如math.sqrt

或者,您可以使用**代替pow

>>> 1j ** 2
(-1+0j)