我的 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
Run Code Online (Sandbox Code Playgroud)
有谁知道如何解决这个问题?非常感谢 !
问题是您正在使用from math import *. 这pow用不支持复数的版本掩盖了内置函数。
>>> 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
Run Code Online (Sandbox Code Playgroud)
from <x> import * 通常被认为是不好的做法,这样的情况就是原因。
相反,您应该使用import math, 并将所有数学函数引用为,例如math.sqrt
或者,您可以使用**代替pow:
>>> 1j ** 2
(-1+0j)
Run Code Online (Sandbox Code Playgroud)