2012-03-21 72 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)。