Сообщить об ошибке.

Комплексные числа complex в Python

Комплексное число тип complex состоит из двух чисел с плавающей точкой, представляющих соответственно его действительную и мнимую части. Доступ к обеим частям комплексного объекта x обеспечивают атрибуты x. real и x. imag, доступные только для чтения. Мнимый литерал можно задать с помощью числа с плавающей точкой или десятичного дробного числа с фиксированной точностью с добавлением в конец буквы j или J, в результате получим комплексное число с нулевой вещественной частью, которое можно добавить к целому числу или числу с плавающей точкой, чтобы получить комплексное число с действительными и мнимыми частями.

# Варианты записи комплексных чисел
>>> 0j, 0.j, 0.3j, .8j, 1j, 2.j, 1.+3j, 1e1+2J, 1.e-3+1j, 1.5e+4+2j, 1.5e+4+78.1e-1J
# (0j, 0j, 0.3j, 0.8j, 1j, 2j, (1+3j), (10+2J), (0.001+1j), (15000+2j), (15000+7.81J))

>>> x = 78.1e-1j # мнимая часть
>>> x = x + 1.5e+4 # складываем в вещественным числом
>>> x
# (15000+7.81j)
>>> x.real
# 15000.0
>>> x.imag
# 7.81

Буква j в конце литерала обозначает квадратный корень из -1. Например, комплексное число, равное единице, можно представить как 1+0j или 1.0+0.0j. Python выполнит операцию сложения или вычитания во время компиляции.

Комплексные числа поддерживают не все арифметические операции и операции сравнения.

  • из арифметических операций недоступны // - деление без остатка , % - остаток от деления, int(), float(), divmod().
  • из операции сравнения недоступны x < y, x <= y, x > y и x >= y.

Тип complex в языке Python представлен классом complex(), он позволяет:

  • создать комплексное число со значением переданных аргументов: действительной и мнимой частью
  • преобразовать строку с записью комплексного числа в комплексное число.

Примеры использования создания комплексных чисел и преобразования объектов к типу complex:

>>> complex()
# 0j
>>> complex(1)
# (1+0j)
>>> complex(1.5)
# (1.5+0j)
>>> complex(3, 5)
# (3+5j)
>>> complex(1, 2e-2)
# (1+0.02j)

# Преобразование в complex тип из строки
# обратите внимание на пробелы в аргументах
>>> complex(' 1+2j ')
# (1+2j)
>>> complex('   0.1+2.0j')
# (0.1+2j)
>>> complex(' .1+2.j     ')
# (0.1+2j)
>>> complex('    1e3+2e-3j')
# (1000+0.002j)