我的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
有谁知道如何解决这个问题? 非常感谢!
答案 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)