Идентификация комплексного числа - PullRequest
5 голосов
/ 22 марта 2012

Я создаю приложение калькулятора для всех типов математических алгоритмов.Тем не менее, я хочу определить, является ли корень сложным, и затем для него есть исключение.Я придумал это:

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

Однако, когда я запускаю приложение, ничего не идентифицируется и не печатается, зная, что x является сложным корнем.

Ответы [ 5 ]

13 голосов
/ 22 марта 2012

Я не на 100% уверен в том, что вы спрашиваете, но если вы хотите проверить, является ли переменная сложного типа, вы можете использовать isinstance . Например,

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

печать

X is complex
8 голосов
/ 22 марта 2012
>>> isinstance(1j, complex)
True
6 голосов
/ 22 марта 2012

Попробуйте:

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

Это печатает ошибку для 2 + 0j, 3j, но ничего не печатает для 2, 2.12 и т. Д.

Также подумайтео выдаче ошибки (ValueError или TypeError), когда переменная является сложной.

1 голос
/ 27 августа 2018

В NumPy v1.15 включена функция: numpy.iscomplex ( x )

где x - это число, которое должно быть идентифицировано.

0 голосов
/ 07 февраля 2019

Один из способов сделать это может быть,

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

Как уже отмечали другие, isinstance тоже работает

...