Classe Fraction
Stai sviluppando una semplice calcolatrice e il tuo compito è creare una classe Python Fraction che rappresenti una frazione matematica.
La classe dovrebbe avere 5 metodi magici:
__add__: Questo metodo dovrebbe accettare un altro oggetto Fraction come argomento e restituire un nuovo oggetto Fraction che è la somma della Fraction originale e della Fraction passata come argomento.__sub__: Questo metodo dovrebbe accettare un altro oggetto Fraction come argomento e restituire un nuovo oggetto Fraction che è il risultato della Fraction originale meno la Fraction passata come argomento.__mul__: Questo metodo dovrebbe accettare un altro oggetto Fraction come argomento e restituire un nuovo oggetto Fraction che è il risultato della Fraction originale moltiplicata per la Fraction passata come argomento.__truediv__: Questo metodo dovrebbe accettare un altro oggetto Fraction come argomento e restituire un nuovo oggetto Fraction che è il risultato della Fraction originale divisa per la Fraction passata come argomento. Se la Fraction passata come argomento ha un numeratore pari a zero, questo metodo dovrebbe sollevare unZeroDivisionError.__str__: Questo metodo dovrebbe restituire la frazione nel formatonumerator / denominator. Il metodo dovrebbe restituire una rappresentazione in stringa della frazione nella sua forma più semplice (ad esempio, "2 / 3" invece di "4 / 6"). Per semplificare una frazione, dividi il numeratore e il denominatore per il loro massimo comune divisore (MCD).
La classe Fraction dovrebbe poter essere istanziata con due parametri, un numerator e un denominator. Entrambi i parametri dovrebbero essere interi, con il denominator predefinito a 1 se non fornito. Se il denominatore è 0, il programma dovrebbe sollevare un ValueError nel metodo __init__.
Input | Risultato |
|---|---|
| 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