Classe Fraction
Vous développez une calculatrice simple et votre tâche est de créer une classe Python
Fraction
qui représente une fraction mathématique.La classe doit posséder 5 méthodes magiques :
__add__
: Cette méthode doit prendre un autre objet Fraction en argument et renvoyer un nouvel objet Fraction représentant la somme de la Fraction originale et de la Fraction passée en argument.
__sub__
: Cette méthode doit prendre un autre objet Fraction en argument et renvoyer un nouvel objet Fraction représentant le résultat de la Fraction originale soustraite par la Fraction argument.
__mul__
: Cette méthode doit prendre un autre objet Fraction en argument et renvoyer un nouvel objet Fraction représentant le produit de la Fraction originale et de la Fraction argument.
__truediv__
: Cette méthode doit prendre un autre objet Fraction en argument et renvoyer un nouvel objet Fraction représentant le quotient de la Fraction originale divisée par la Fraction argument. Si la Fraction argument a un numérateur égal à zéro, cette méthode doit lever une exceptionZeroDivisionError
.
__str__
: Cette méthode doit retourner la fraction au formatnumérateur / dénominateur
. Elle doit renvoyer une représentation sous forme de chaîne de caractères de la fraction sous sa forme la plus simplifiée (par exemple, "2 / 3" au lieu de "4 / 6"). Pour simplifier une fraction, divisez le numérateur et le dénominateur par leur plus grand commun diviseur (PGCD).
La classe Fraction doit être instanciable avec deux paramètres, un
numérateur
et un dénominateur
. Les deux paramètres doivent être des entiers, avec le dénominateur
par défaut à 1
s'il n'est pas fourni. Si le dénominateur est égal à 0, le programme doit lever une exception ValueError
dans la méthode __init__
.Entrée | Sortie |
f1 = Fraction(1, 2); f2 = Fraction(1, 3); f3 = f1+f2; print(f3) | 5 / 6 |
f1 = Fraction(1, 2); f2 = Fraction(1, 3); f3 = f1-f2; print(f3) | 1 / 6 |
f1 = Fraction(1, 2); f2 = Fraction(1, 3); f3 = f1 * f2; print(f3) | 1 / 6 |
f1 = Fraction(1, 2); f2 = Fraction(1, 3); f3 = f1 / f2; print(f3) | 3 / 2 |
f1 = Fraction(1, 2); f2 = Fraction(0, 3); f3 = f1 / f2; print(f3) | ZeroDivisionError: You can't divide by zero! |
f1 = Fraction(1, 0); | ValueError: The denominator cannot be zero! |
Constraints
Time limit: 1 seconds
Memory limit: 512 MB
Output limit: 1 MB