Статьи

Учебные материалы по языку Python — от основ до продвинутых тем

complex

Страница 22 из 34 · 2026-10-26 · 2 мин чтения

Создание

Комплексное число хранит действительную и мнимую часть в виде двух float. Мнимая единица обозначается суффиксом j:

a = 3 + 4jb = complex(1, 2)c = complex("2+5j")d = 1jprint(a)print(b)print(c)print(d ** 2)

Результат последней строки: (-1+0j).

Пробелов внутри строки для complex() быть не должно: complex("2 + 5j") вызовет ValueError.

Атрибуты и методы

ЭлементОписание
realДействительная часть
imagМнимая часть
conjugate()Сопряжённое число
abs(z)Модуль числа
z = 3 + 4jprint(z.real)print(z.imag)print(z.conjugate())print(abs(z))

Результат: 3.0, 4.0, (3-4j), 5.0.

Арифметика

a = 1 + 2jb = 3 - 1jprint(a + b)print(a - b)print(a * b)print(a / b)print(a ** 2)print(a == b)

Операции // и % для комплексных чисел не определены, также нельзя сравнивать их через < и >.

Модуль cmath

Функции из math не работают с комплексными числами. Для них есть cmath:

import cmathz = 1 + 1jprint(cmath.sqrt(-1))print(cmath.phase(z))print(cmath.polar(z))print(cmath.rect(2, cmath.pi / 2))print(cmath.exp(1j * cmath.pi))
ФункцияОписание
phase(z)Аргумент числа в радианах
polar(z)Пара (модуль, фаза)
rect(r, phi)Число из полярных координат
sqrt, exp, log, log10Основные функции
sin, cos, tan и обратныеТригонометрия
isnan, isinf, isfinite, iscloseПроверки
pi, e, tau, inf, nan, infj, nanjКонстанты

Применение

Комплексные числа удобны в расчётах электрических цепей, обработке сигналов, при решении квадратных уравнений с отрицательным дискриминантом:

import cmathdef solve_quadratic(a, b, c):    d = cmath.sqrt(b ** 2 - 4 * a * c)    return (-b + d) / (2 * a), (-b - d) / (2 * a)print(solve_quadratic(1, 2, 5))

Задания

  1. Найдите все три корня кубического уравнения x**3 = 1 через cmath.rect.
  2. Реализуйте функцию вращения точки на плоскости на заданный угол с помощью умножения на комплексное число.