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 objetoFraction
como argumento e retornar um novo objetoFraction
que é a soma daFraction
original com aFraction
do argumento.__sub__
: Este método deve receber outro objetoFraction
como argumento e retornar um novo objetoFraction
que é o resultado daFraction
original subtraída pelaFraction
do argumento.__mul__
: Este método deve receber outro objetoFraction
como argumento e retornar um novo objetoFraction
que é o resultado daFraction
original multiplicada pelaFraction
do argumento.__truediv__
: Este método deve receber outro objetoFraction
como argumento e retornar um novo objetoFraction
que é o resultado daFraction
original dividida pelaFraction
do argumento. Se aFraction
do 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