2012-03-21 77 views
5

我正在爲所有類型的數學算法創建一個計算器應用程序。但是,我想確定一個根是否複雜,然後有一個例外。 我想出了這個:識別複數

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

然而,沒有什麼是確定的,或者當我運行應用程序打印,知道x是一個複雜的根源。

+0

縮進與您的問題完全相同嗎?有沒有錯誤?你可以添加'if'語句的'else'部分嗎?怎麼樣'複雜()'?你不應該通過一個參數並返回「真」或「假」嗎? – Tadeck 2012-03-21 23:57:16

+2

等一下 - 如果一個複雜的根不是一個錯誤呢?有時候這是正確的答案。你確定它應該被標記爲錯誤嗎? – duffymo 2012-03-22 00:02:13

回答

12

我不是100%肯定你問什麼,但如果你想檢查一個變量是複合型的,你可以使用isinstance。例如,

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

打印

X is complex 
+0

謝謝!有用! – enginefree 2012-03-22 00:00:28

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

謝謝!這也適用! – enginefree 2012-03-22 00:00:45

6

試試這個:

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

這將打印錯誤2 + 0j3j,但2不顯示任何信息,2.12

也想想throwi當變量很複雜時發生錯誤(ValueErrorTypeError)。