user1786283
user1786283

Reputation:

Identifying a complex number

I am creating a calculator application for all types of mathematical algorithms. However, I want to identify if a root is complex and then have an exception for it. I came up with this:

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

However, nothing is identified or printed when I run the app, knowing that x is a complex root.

Upvotes: 12

Views: 38159

Answers (5)

Evelyn
Evelyn

Reputation: 85

One way to do it could be to do,

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

As others have pointed out, isinstance works too

Upvotes: 0

Soham Bhattacharyya
Soham Bhattacharyya

Reputation: 993

In NumPy v1.15, a function is included: numpy.iscomplex(x)

where x is the number, that is to be identified.

Upvotes: 6

Tadeck
Tadeck

Reputation: 137370

Try this:

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

This prints error for 2 + 0j, 3j, but does not print anything for 2, 2.12 etc.

Also think about throwing an error (ValueError or TypeError) when the variable is complex.

Upvotes: 9

Adam Mihalcin
Adam Mihalcin

Reputation: 14458

I'm not 100% sure what you're asking, but if you want to check if a variable is of complex type you can use isinstance. For example,

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

prints

X is complex

Upvotes: 28

Ignacio Vazquez-Abrams
Ignacio Vazquez-Abrams

Reputation: 798706

>>> isinstance(1j, complex)
True

Upvotes: 9

Related Questions