Clase Fraction
Estás desarrollando una calculadora sencilla y tu tarea es crear una clase de Python Fraction que represente una fracción matemática.
La clase debe tener 5 métodos mágicos:
__add__: Este método debe tomar otro objetoFractioncomo argumento y devolver un nuevo objetoFractionque sea la suma de laFractionoriginal y laFractionpasada como argumento.__sub__: Este método debe tomar otro objetoFractioncomo argumento y devolver un nuevo objetoFractionque sea el resultado de restar laFractionargumento de laFractionoriginal.__mul__: Este método debe tomar otro objetoFractioncomo argumento y devolver un nuevo objetoFractionque sea el resultado de multiplicar laFractionoriginal por laFractionargumento.__truediv__: Este método debe tomar otro objetoFractioncomo argumento y devolver un nuevo objetoFractionque sea el resultado de dividir laFractionoriginal entre laFractionargumento. Si laFractionargumento tiene un numerador de cero, este método debe generar unZeroDivisionError.__str__: Este método debe devolver la fracción en el formatonumerator / denominator. El método debe retornar una representación en cadena de la fracción en su forma más simplificada (por ejemplo, "2 / 3" en lugar de "4 / 6"). Para simplificar una fracción, divide el numerador y el denominador por su máximo común divisor (MCD).
La clase Fraction debe poder instanciarse con dos parámetros, un numerator y un denominator. Ambos parámetros deben ser enteros, con el denominator predeterminado en 1 si no se proporciona. Si el denominador es 0, el programa debe generar un ValueError en el método __init__.
Entrada | Salida |
|---|---|
| 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