Créer une Calculatrice Personnalisée
Votre tâche consiste à créer une classe Number
qui utilise les méthodes magiques de Python (__add__
, __sub__
, __mul__
, __truediv__
) pour effectuer des opérations mathématiques. Cependant, la classe doit être robuste et capable de gérer diverses exceptions pouvant survenir lors de ces opérations :
Si une division par zéro est tentée, une
ZeroDivisionError
doit être levée avec le messageCannot divide by zero
.Si l'une des entrées ne peut pas être convertie en nombre, une
ValueError
doit être levée avec le messageInvalid number input
.Si l'opérateur n'est pas un
Number
, uneTypeError
doit être levée avec le messageOperator must be a Number
.De plus, vous devez implémenter une exception personnalisée,
UnsupportedOperatorError
, qui hérite deValueError
, avec le messageUnsupported operator
. Cette erreur doit être levée si une opération non prise en charge par la classe est tentée. Cela inclut__floordiv__
,__mod__
,__pow__
,__lshift__
,__rshift__
,__and__
,__xor__
,__or__
.
Toutes les méthodes magiques valides doivent retourner un objet Number
.
Note : N'oubliez pas d'implémenter la méthode magique __str__
pour retourner la valeur du Number
.
Input | Output |
| 12 |
| Cannot divide by zero |
| Invalid number input |
| Unsupported operator |
| Operator must be a Number |
| 20 |
| Unsupported operator |
Constraints
Time limit: 2 seconds
Memory limit: 512 MB
Output limit: 1 MB