2012-03-21 13 views
5

私はすべてのタイプの数学的アルゴリズム用の電卓アプリケーションを作成しています。しかし、私はルートが複雑であるかどうかを特定し、そのルートに対して例外があることを確認したい。 私はこの思い付いた:複素数の特定

if x == complex(): 
    print("Error 05: Complex Root") 

しかし、何も特定されていないか、私はアプリを実行したときにxが複雑なルートであることを知って、印刷されました。

+0

インデントはあなたの質問とまったく同じですか?何かエラーがありますか? 'if'文の' else'部分を追加できますか? 'complex()'はどうでしょうか?引数を渡して 'True'か' False'を返すべきではありませんか? – Tadeck

+2

ちょっと待ってください。複雑なルートがエラーではない場合はどうなりますか?時には正しい答えです。あなたはそれがエラーとしてフラグを付けられるべきであると確信していますか? – duffymo

答えて

12

私はあなたが求めているものを100%わからないんだけど、あなたは変数が複雑な型であるかどうかを確認したい場合は、isinstanceを使用することができます。例えば、

x = 5j 
if isinstance(x, complex): 
    print 'X is complex' 

プリント

X is complex 
+0

ありがとう!できます! – enginefree

7
>>> isinstance(1j, complex) 
True 
+0

ありがとう!これも同様に機能します! – enginefree

6

これを試してみてください:

if isinstance(x, complex): 
    print("Error 05: Complex Root") 

これは、3j2 + 0jのエラーを出力しますが、2のために何を印刷しないなど2.12

また、スローイについて考える変数が複雑な場合はエラー(ValueErrorまたはTypeError)。

関連する問題