Classe Fraction
Estás a desenvolver uma calculadora simples e a tua tarefa é criar uma classe Python Fraction que representa uma fração matemática.
A classe deve ter 5 métodos mágicos:
__add__: Este método deve receber outro objetoFractioncomo argumento e retornar um novo objetoFractionque é a soma daFractionoriginal com aFractiondo argumento.__sub__: Este método deve receber outro objetoFractioncomo argumento e retornar um novo objetoFractionque é o resultado daFractionoriginal subtraída pelaFractiondo argumento.__mul__: Este método deve receber outro objetoFractioncomo argumento e retornar um novo objetoFractionque é o resultado daFractionoriginal multiplicada pelaFractiondo argumento.__truediv__: Este método deve receber outro objetoFractioncomo argumento e retornar um novo objetoFractionque é o resultado daFractionoriginal dividida pelaFractiondo argumento. Se aFractiondo argumento tiver um numerador igual a zero, este método deve levantar umZeroDivisionError.__str__: Este método deve retornar a fração no formatonumerator / denominator. O método deve retornar uma representação em string da fração na sua forma mais simples (por exemplo, "2 / 3" em vez de "4 / 6"). Para simplificar uma fração, divide-se o numerador e o denominador pelo seu máximo divisor comum (MDC).
A classe Fraction deve poder ser instanciada com dois parâmetros, um numerator e um denominator. Ambos os parâmetros devem ser inteiros, com o denominator assumindo o valor 1 por padrão se não for fornecido. Se o denominador for 0, o programa deve levantar um ValueError no método __init__.
Entrada | Saída |
|---|---|
| 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