Комплексное число тип 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)