2012-03-21 5 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") 

이, 3j, 2 + 0j에 대한 오류를 인쇄하지만 2 아무것도 인쇄되지 않는 등 2.12

또한 throwi에 대해 생각해보세요. 변수가 복잡한 경우 오류 (ValueError 또는 TypeError)가 발생합니다.