Класс complex() создает/преобразовывает число/строку в комплексное число
Класс complex() преобразует строку с записью комплексного числа в комплексное число или вернет комплексное число со значением переданных аргументов: действительной и мнимой частью.
Если первый параметр является строкой, например ‘3+5j’ , то выполнится преобразование строки в комплексное число, в этом случае второй параметр imag должен быть опущен.
Второй параметр imag никогда не может быть строкой. Каждый аргумент может быть любого числового типа ( int или float ). Если imag опущен, то по умолчанию используется 0 . Если оба аргумента опущены, возвращается 0j .
Заметка:
При преобразовании из строки, строка не должна содержать пробелов вокруг + или — оператора. Например, complex(‘ 1+2j ‘) — хорошо, но при записи строки комплексного числа с пробелами complex(‘1 + 2j’) бросится исключение ValueError .
Примеры преобразования числа или строки в комплексное число.
>>> 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(' 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)
- ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
- Функция abs(), абсолютное значение числа
- Функция all(), все элементы True
- Функция any(), хотя бы один элемент True
- Функция ascii(), преобразует строку в ASCII
- Функция bin(), число в двоичную строку
- Класс bool(), логическое значение объекта
- Функция breakpoint(), отладчик кода
- Класс bytearray(), преобразует в массив байтов
- Класс bytes(), преобразует в строку байтов
- Функция callable(), проверяет можно ли вызвать объект
- Функция chr(), число в символ Юникода
- Класс classmethod, делает функцию методом класса
- Функция compile() компилирует блок кода Python
- Класс complex(), преобразует в комплексное число
- Функция delattr(), удаляет атрибут объекта
- Класс dict() создает словарь
- Функция dir(), все атрибуты объекта
- Функция divmod(), делит числа с остатком
- Функция enumerate(), счетчик элементов последовательности
- Функция eval(), выполняет строку-выражение с кодом
- Функция exec(), выполняет блок кода
- Функция filter(), фильтрует список по условию
- Класс float(), преобразует в вещественное число
- Функция format(), форматирует значение переменной
- Класс frozenset(), преобразует в неизменяемое множество
- Функция getattr(), значение атрибута по имени
- Функция globals(), переменные глобальной области
- Функция hasattr(), наличие атрибута объекта
- Функция hash(), хэш-значение объекта
- Функция help(), справка по любому объекту
- Функция hex(), число в шестнадцатеричную строку
- Функция id(), идентификатор объекта
- Функция input(), ввод данных с клавиатуры
- Класс int(), преобразует в тип int
- Функция isinstance(), принадлежность экземпляра к классу
- Функция issubclass(), проверяет наследование класса
- Функция iter(), создает итератор
- Функция len(), количество элементов объекта
- Класс list(), преобразовывает в список
- Функция locals(), переменные локальной области
- Функция map(), обработка последовательности без цикла
- Функция max(), максимальное значение элемента
- Класс memoryview(), ссылка на буфер обмена
- Функция min(), минимальное значение элемента
- Функция next(), следующий элемент итератора
- Класс object(), возвращает безликий объект
- Функция oct(), число в восьмеричную строку
- Функция open(), открывает файл на чтение/запись
- Функция ord(), число символа Unicode
- Функция pow(), возводит число в степень
- Функция print(), печатает объект
- Класс property(), метод класса как свойство
- Класс range(), генерирует арифметические последовательности
- Функция repr(), описание объекта
- Функция reversed(), разворачивает последовательность
- Функция round(), округляет число
- Класс set(), создает или преобразовывает в множество
- Функция setattr(), создает атрибут объекта
- Класс slice(), шаблон среза
- Функция sorted(), выполняет сортировку
- Декоратор staticmethod(), метод класса в статический метод
- Класс str(), преобразует объект в строку
- Функция sum(), сумма последовательности
- Функция super(), доступ к унаследованным методам
- Класс tuple(), создает или преобразует в кортеж
- Класс type(), возвращает тип объекта
- Функция vars(), словарь переменных объекта
- Функция zip(), объединить элементы в список кортежей
- Функция __import__(), находит и импортирует модуль
- Функция aiter(), создает асинхронный итератор
- Функция anext(), следующий элемент асинхронного итератора
complex
Чтобы создать комплексное число, в котором вещественная часть равна нулю можно добавить j (в любом регистре) к числовому литералу. Далее добавить к этому числу вещественную часть можно обычным сложением.
Кроме того, создать комплексное число можно при помощи конструктора complex(real[, imag=0]) :
my_complex = complex(2, 3) # (2+3j)
my_complex = 2+3j # (2+3j)
isinstance(my_complex, complex) # True
my_complex.real # 2.0
my_complex.imag # 3.0
my_complex.conjugate() # (2-3j)
isinstance(my_complex.real, float) # True
isinstance(my_complex.imag, float) # True
Как видно из примера, получить доступ к вещественной части числа можно через атрибут real , а ко мнимой через imag .
Чтобы получить для данного комплексное числа сопряжённое число, следует воспользоваться методом .conjugate() .
Каждая составляющая комплексного числа представляет собой число с плавающей запятой — float.
Python. Комплексные числа. Модуль cmath. Создание комплексного числа
Комплексные числа. Модуль cmath . Создание комплексного числа. Класс complex . Функции и константы модуля cmath
Поиск на других ресурсах:
1. Модуль cmath . Назначение. Общие сведения
В языке программирования Python для работы с комплексными числами используется модуль cmath . Модуль содержит набор функций для обработки комплексных чисел.
Чтобы использовать средства модуля cmath , сначала его нужно подключить директивой import
import cmath
Модуль всегда доступен из программы.
Функции модуля cmath оперируют аргументами
- целых чисел;
- чисел с плавающей запятой (floating point types)
- комплексных чисел. Комплексное число создается функцией complex() .
2. Создание комплексного числа. Класс complex . Способы создания комплексного числа
Для создания комплексного числа используется класс complex . Чтобы создать экземпляр класса complex (комплексное число) можно использовать один из двух способов.
Способ 1. Задавание непосредственно вещественной и мнимой части комплексного числа
complexNumber = complex([real[, imag]])
- complexNumber – создаваемое комплексное число. Число представлено как real+imag*1j ;
- real – вещественная часть комплексного числа;
- imag – мнимая часть комплексного числа.
При этом функция complex() может получать разное количество аргументов:
- ноль аргументов. Это означает, что будет сформировано число 0j ;
- один аргумент. В этом случае будет использоваться комплексное число без мнимой ( j ) части;
- два аргумента. Первый аргумент — вещественная часть, второй аргумент — мнимая часть.
Каждый из аргументов может быть числового типа, или даже комплексным числом.
Способ 2. Указание комплексного числа в виде строки
complexNumber = complex(complex_number_as_string)
- complexNumber – создаваемое комплексное число;
- complex_number_as_string — строка, отражающая комплексное число (например, «2+3j», «1-2j» и т.д.). При представлении комплексного числа, строка не должна содержать символов пробел ‘ ‘ , в противном случае будет сгенерировано исключение ValueError .
При этом способе функция complex() получает только один аргумент — строку. Два аргумента передавать запрещено.
3. Как получить вещественную и мнимую части комплексного числа? Пример
После создания комплексного числа функцией complex() (см. предыдущий пункт) можно получить доступ к его составляющим с помощью следующего обращения:
- z.real — действительная часть комплексного числа z ;
- z.imag — мнимая часть комплексного числа z .
Пример.
# Подключить модуль cmath import cmath # Создать комплексное число z = 7-8j z = complex(7, -8) # Получить составляющие числа z re = z.real # вещественная часть im = z.imag # мнимая часть # Вывести полученные составляющие на экран print('re = ', re) print('im = ', im)
Результат выполнения программы
re = 7.0 im = -8.0
4. Пример, демонстрирующий создание комплексного числа различными способами
В примере создаются комплексные числа разными способами с помощью класса complex .
# Метод complex() - создает объект комплексного числа # Способ 1. # 1.1. Вызов метода complex() без параметров num1 = complex() # num1 = 0j print("num1 color: #ff0000;"># 1.2. Вызов метода complex() с 1 параметром типа float num2 = complex(5.22) # num2 = (5.22+0j) print("num2 color: #ff0000;"># 1.3. Вызов метода complex() с 2 параметрами типа int num3 = complex(7, -4) # num3 = (7-4j) print('num3 = ', num3) # 2. Вызов метода complex() с передачей строки num4 = complex('0+0j') # num4 = 0j print('num4 = ', num4) num5 = complex("2+8j") # num5 = (2+8j) print('num5 = ', num5) # здесь ошибка - строка содержит пробелы # num6 = complex('1 - 4j') # 3. Создание комплексного числа на основании других комплексных чисел num6 = complex(num3, num5) # num6 = (-1-2j) print('num6 = ', num6)
Результат выполнения программы
num1 = 0j num2 = (5.22+0j) num3 = (7-4j) num4 = 0j num5 = (2+8j) num6 = (-1-2j)
5. Состав модуля cmath . Группы функций для работы с комплексными числами
В модуле cmath функции для работы с комплексными числами сгруппированы следующим образом:
- функции преобразования в полярные координаты и наоборот;
- степенные и логарифмические функции;
- тригонометрические функции;
- гиперболические функции;
- функции классификаций.
5.1. Функции преобразования в полярные координаты и наоборот
К этой категории функций относятся следующие:
- cmath.phase(x) — возвращает фазу от аргумента x в виде числа типа float ;
- cmath.polar() — возвращает представление x в полярных координатах;
- cmath.rect() — возвращает комплексное число из полярных координат.
5.2. Степенные и логарифмические функции
В модуле cmath реализованы следующие степенные и логарифмические функции, оперирующие комплексными числами:
- cmath.exp(x) — возвращает экспоненту e, возведенную в степень x , где x может быть комплексным числом. Экспонента e является основой натурального логарифма;
- cmath.log(x) — возвращает натуральный логарифм от аргумента x с заданным основанием;
- cmath.log10(x) — возвращает логарифм с основанием 10 от аргумента x ;
- cmath.sqrt(x) — возвращает корень квадратный от аргумента x .
5.3. Тригонометрические функции
Модуль cmath содержит 6 тригонометрических функций, которые обрабатывают комплексные числа:
- cmath.acos(x) — возвращает арккосинус от аргумента x ;
- cmath.asin(x) — возвращает арксинус от аргумента x ;
- cmath.atan(x) — определяет арктангенс от аргумента x ;
- cmath.cos(x) — возвращает косинус от аргумента x ;
- cmath.sin(x) — возвращает синус от аргумента x ;
- cmath.tan(x) — возвращает тангенс от аргумента x .
5.4. Гиперболические функции
Модуль cmath содержит реализацию следующих гиперболических функций, которые оперируют комплексными числами:
- cmath.acosh(x) — возвращает гиперболический арккосинус от аргумента x ;
- cmath.asinh(x) — возвращает гиперболический арксинус от аргумента x ;
- cmath.atanh(x) — возвращает гиперболический арктангенс от аргумента x ;
- cmath.cosh(x) — возвращает гиперболический косинус от аргумента x ;
- cmath.sinh(x) — возвращает гиперболический синус от аргумента x ;
- cmath.tanh(x) — возвращает гиперболический тангенс от аргумента x .
5.5. Функции классификаций
К числу функций классификаций модуля cmath относятся следующие:
- cmath.isinfinite(x) — определяет, есть ли вещественная и мнимая часть комплексного числа x конечными;
- cmath.isinf(x) — определяет, есть ли вещественная или мнимая части комплексного числа x бесконечными;
- cmath.isnan(x) — определяет, имеют ли значение Nan вещественная или мнимая части комплексного числа;
- cmath.isclose(x) — определяет близость двух значений между собой.
5.6. Константы модуля cmath . Пример
Модуль cmath содержит ряд широко применяемых констант:
- cmath.pi — математическая константа π, представлена как тип float ;
- cmath.e — математическая экспонента e , представлена как тип float ;
- cmath.tau — математическая константа τ (тау), представлена как тип float ;
- cmath.inf — бесконечность. Это значение эквивалентно значению float(‘inf’) ;
- cmath.infj — комплексное число, в котором вещественная часть равна 0, мнимая часть равна бесконечности. Это число эквивалентно числу complex(0.0, float(‘inf’)) ;
- cmath.nanj — комплексное число, в котором вещественная часть равна 0, мнимая равна значению NaN . Это число можно получить путем вызова complex(0.0, float(‘nan’)) .
Пример. В примере выводятся на экран значения констант модуля cmath .
# Подключить модуль cmath import cmath # Вывести значения констант модуля cmath print(cmath.pi) # 3.141592653589793 print(cmath.e) # 2.718281828459045 print(cmath.tau) # 6.283185307179586 print(cmath.inf) # inf print(cmath.infj) # infj print(cmath.nan) # nan print(cmath.nanj) # nanj
Результат выполнения программы
3.141592653589793 2.718281828459045 6.283185307179586 inf infj nan nanj
Связанные темы
- Функции преобразования в полярные координати и наоборот. Степенные и логарифмические функции
- Тригонометрические функции. Гиперболические функции. Функции классификаций
Функция complex() в Python
Функция complex() в Python используется для создания комплексных чисел. Это встроенная функция, возвращающая сложный тип из входных параметров.
class complex([real[, imag]])
Вот некоторые из важных моментов, которые следует помнить при использовании функции complex():
- Функция возвращает комплексное число со значением real + imag * 1j.
- Мы можем преобразовать строку в комплексное число с помощью функции complex(). Если первый аргумент является строкой, второй аргумент не допускается.
- При преобразовании строки в комплексное число пробелы в строке не допускаются. Например, «1 + 2j» подходит, а «1 + 2j» – нет.
- Если аргумент не передан, возвращается 0j.
- Входные аргументы могут быть в любом числовом формате, таком как шестнадцатеричный, двоичный и т.д.
- Подчеркивание в числовых литералах также разрешено начиная с Python 3.6, см. PEP 515.
Примеры
Давайте посмотрим на некоторые примеры функций complex().
Без аргументов
c = complex() print(type(c)) print(c)
С числовыми аргументами
c = complex(1, 1) print(c) c = complex(1.5, -2.1) print(c) c = complex(0xF) # hexadecimal print(c) c = complex(0b1010, -1) # binary print(c)
(1+1j) (1.5-2.1j) (15+0j) (10-1j)
С цифровыми литералами подчеркивания
c = complex(10_000_000.0, -2) print(c)
С вводом комплексных чисел
c = 1 + 2j c = complex(c, -4) print(c) c = complex(1+2j, 1+2J) print(c)
(1-2j) (-1+3j)
Обратите внимание, как сложные литералы объединяются в новое комплексное число в Python. Если второй аргумент – комплексное число, то расчет другой.
Со строковыми аргументами
c = complex("1+2j") print(c)
Посмотрим, что произойдет, если во входной строке есть пробелы.
c = complex("1 + 2j")
Вывод: ValueError: complex() arg – неверно сформированная строка.
Давайте посмотрим, что произойдет, если первый аргумент является строкой, а второй аргумент также указан.
c = complex("1+j", 2)
Вывод: TypeError: complex() не может принимать второй аргумент, если первый является строкой.
Что, если мы попробуем передать второй аргумент, как String, посмотрим, какую ошибку мы получим.
c = complex(2, "-2j")
Вывод: TypeError: complex() второй аргумент не может быть строкой.
