Реализовать модуль polynomial
и класс Polynomial
- полином от одной переменной с целочисленными коэффициентами. Конструктор должен принимать список или кортеж коэффициентов в том же порядке, как и в классической записи: Polynomial([1, 2, -4])
означает x^2 + 2x - 4
.
Обязательные поддерживаемые операции:
- сложение;
- сложение с константой (с обеих сторон);
- вычитание;
- вычитание с константой (с обеих сторон);
- умножение;
- умножение на константу (с обеих сторон);
- сравнение;
- преобразование к строке
str(p)
в стиле"x^2 + 2x - 4"
; - печать внутреннего представления объекта
repr(p)
в стиле"Polynomial([1, 2, -4])"
; - копирование в стиле
Polynomial(p)
, где p - объект класса Polynomial; - список коэффициентов (list) можно получать/модифицировать, как
p.coeffs
.
В случае недопустимых значений или типов входных данных должны выбрасываться соответствующие исключения.
Также реализовать модульные тесты для всех методов, используя встроенный модуль unittest
.