Создание собственного калькулятора
Ваша задача — создать класс Number, использующий магические методы Python (__add__, __sub__, __mul__, __truediv__) для выполнения математических операций. Кроме того, ваш класс должен быть надежным и уметь обрабатывать различные исключения, которые могут возникнуть при этих операциях:
Если будет попытка деления на ноль, должно быть вызвано исключение
ZeroDivisionErrorс сообщениемCannot divide by zero.Если любой из входных аргументов не может быть преобразован в число, должно быть вызвано исключение
ValueErrorс сообщениемInvalid number input.Если оператор не является экземпляром
Number, должно быть вызвано исключениеTypeErrorс сообщениемOperator must be a Number.Также вам нужно реализовать собственное исключение
UnsupportedOperatorError, которое наследуется отValueErrorи имеет сообщениеUnsupported operator. Это исключение должно вызываться, если предпринимается попытка выполнения операции, не поддерживаемой классом. К таким операциям относятся:__floordiv__,__mod__,__pow__,__lshift__,__rshift__,__and__,__xor__,__or__.
Все поддерживаемые магические методы должны возвращать объект Number.
Примечание: Не забудьте реализовать магический метод __str__, чтобы возвращать значение Number.
Ввод | Вывод |
| 12 |
| Cannot divide by zero |
| Invalid number input |
| Unsupported operator |
| Operator must be a Number |
| 20 |
| Unsupported operator |
Constraints
Time limit: 2 seconds
Memory limit: 512 MB
Output limit: 1 MB