Класс Fraction
Вы разрабатываете простой калькулятор, и ваша задача — создать класс Python Fraction, представляющий математическую дробь.
Класс должен иметь 5 магических методов:
__add__: Этот метод принимает другой объект Fraction в качестве аргумента и возвращает новый объект Fraction, который является суммой исходной дроби и дроби-аргумента.__sub__: Этот метод принимает другой объект Fraction в качестве аргумента и возвращает новый объект Fraction, который является результатом вычитания дроби-аргумента из исходной дроби.__mul__: Этот метод принимает другой объект Fraction в качестве аргумента и возвращает новый объект Fraction, который является результатом умножения исходной дроби на дробь-аргумент.__truediv__: Этот метод принимает другой объект Fraction в качестве аргумента и возвращает новый объект Fraction, который является результатом деления исходной дроби на дробь-аргумент. Если числитель дроби-аргумента равен нулю, этот метод должен вызвать исключениеZeroDivisionError.__str__: Этот метод возвращает дробь в форматеnumerator / denominator. Метод должен возвращать строковое представление дроби в ее упрощенном виде (например, "2 / 3" вместо "4 / 6"). Чтобы упростить дробь, разделите числитель и знаменатель на их наибольший общий делитель (НОД).
Класс Fraction должен иметь возможность создаваться с двумя параметрами: numerator и denominator. Оба параметра должны быть целыми числами, при этом denominator по умолчанию равен 1, если не указан. Если знаменатель равен 0, программа должна вызвать исключение ValueError в методе __init__.
Ввод | Вывод |
|---|---|
| 5 / 6 |
| 1 / 6 |
| 1 / 6 |
| 3 / 2 |
| ZeroDivisionError: You can't divide by zero! |
| ValueError: The denominator cannot be zero! |
Constraints
Time limit: 2 seconds
Memory limit: 512 MB
Output limit: 1 MB