2012-03-21 17 views
5

Estoy creando una aplicación de calculadora para todo tipo de algoritmos matemáticos. Sin embargo, quiero identificar si una raíz es compleja y luego tengo una excepción para ella. me ocurrió esto:Identificación de un número complejo

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

Sin embargo, nada se identifica o se imprime cuando corro la aplicación, sabiendo que x es una raíz compleja.

+0

¿Las sangrías son exactamente como en su pregunta? Hay algun error? ¿Podría agregar la parte 'else' de la instrucción' if'? ¿Qué pasa con 'complex()'? ¿No debería pasarle un argumento y devolver 'True' o' False'? – Tadeck

+2

Espera un segundo: ¿y si una raíz compleja no es un error? A veces esa es la respuesta correcta. ¿Estás seguro de que debería marcarse como un error? – duffymo

Respuesta

12

No estoy 100% seguro de lo que estás pidiendo, pero si usted quiere comprobar si una variable es de tipo complejo puede utilizar isinstance. Por ejemplo,

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

impresiones

X is complex 
+0

¡Gracias! ¡Funciona! – enginefree

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

¡Gracias! ¡Esto también funciona! – enginefree

6

Prueba esto:

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

Esto imprime error para 2 + 0j, 3j, pero no imprime nada por 2, etc. 2.12

También piense en throwi ng un error (ValueError o TypeError) cuando la variable es compleja.