2012-03-21 3 views
5

Sto creando un'applicazione calcolatrice per tutti i tipi di algoritmi matematici. Tuttavia, voglio identificare se una root è complessa e quindi avere un'eccezione per essa. sono arrivato fino a questo:Identificazione di un numero complesso

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

Tuttavia, nulla è identificato o stampata quando faccio funzionare l'applicazione, sapendo che x è una radice complessa.

+0

I trattini sono esattamente come nella domanda? C'è qualche errore? Potresti aggiungere la parte 'else' dell'istruzione' if'? Che dire di 'complex()'? Non dovresti passare un argomento e restituire 'True' o' False'? – Tadeck

+2

Aspetta un secondo - cosa succede se una radice complessa non è un errore? A volte questa è la risposta giusta. Sei sicuro che dovrebbe essere contrassegnato come un errore? – duffymo

risposta

12

sono sicuro al 100% quello che stai chiedendo, ma se si vuole verificare se una variabile è di tipo complesso è possibile utilizzare isinstance. Ad esempio,

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

stampe

X is complex 
+0

Grazie! Funziona! – enginefree

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

Grazie! Funziona così! – enginefree

6

Prova questo:

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

Questo stampa di errore per 2 + 0j, 3j, ma non stampa nulla per 2, 2.12 ecc

Pensa anche a throwi ng un errore (ValueError o TypeError) quando la variabile è complessa.