Creando una Calculadora Personalizada
Tu tarea es crear una clase Number que utilice los métodos mágicos de Python (__add__, __sub__, __mul__, __truediv__) para realizar operaciones matemáticas. Sin embargo, la clase debe ser robusta y ser capaz de manejar varias excepciones que pueden ocurrir durante estas operaciones:
Si se intenta una división por cero, se debe generar un
ZeroDivisionErrorcon el mensajeCannot divide by zero.Si alguna de las entradas no puede convertirse a un número, se debe generar un
ValueErrorcon el mensajeInvalid number input.Si el operador no es un
Number, se debe generar unTypeErrorcon el mensajeOperator must be a Number.Además, debes implementar una excepción personalizada,
UnsupportedOperatorError, que herede deValueError, con el mensajeUnsupported operator. Este error debe generarse si se intenta una operación que no es soportada por la clase. Esto incluye__floordiv__,__mod__,__pow__,__lshift__,__rshift__,__and__,__xor__,__or__.
Todos los métodos mágicos válidos deben devolver un objeto Number.
Nota: No olvides implementar el método mágico __str__ para retornar el valor de Number.
Entrada | Salida |
| 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