2016-08-02 31 views
-3

我有這個問題,我的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

使用標籤明智地配合。 –

+1

什麼'import's您使用的? – RoadieRich

+2

[適用於我](http://ideone.com/zaAQVG)請提供一個簡短的**完整**程序來演示問題,請參閱[mcve]瞭解更多信息。 –

回答

2

的問題是,你正在使用from math import *。這陰影內置powversion 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)