2016-08-02 14 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

あなたはどんな '輸入'を使っていますか? – RoadieRich

+2

[私のための作品](http://ideone.com/zaAQVG)問題を示す短い**完全な**プログラムを提供してください。詳細については、[mcve]を参照してください。 –

答えて

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) 
関連する問題