Erstellen eines benutzerdefinierten Taschenrechners
Deine Aufgabe ist es, eine Number-Klasse zu entwickeln, die die magischen Methoden von Python (__add__, __sub__, __mul__, __truediv__) nutzt, um mathematische Operationen auszuführen. Die Klasse muss jedoch robust sein und verschiedene Ausnahmen behandeln können, die während dieser Operationen auftreten können:
Wenn eine Division durch Null versucht wird, sollte ein
ZeroDivisionErrormit der MeldungCannot divide by zeroausgelöst werden.Wenn eine der Eingaben nicht in eine Zahl konvertiert werden kann, sollte ein
ValueErrormit der NachrichtInvalid number inputausgelöst werden.Wenn der Operator keine
Numberist, sollte einTypeErrormit der MeldungOperator must be a Numberausgelöst werden.Außerdem solltest du eine benutzerdefinierte Ausnahme
UnsupportedOperatorErrorimplementieren, die vonValueErrorerbt und die MeldungUnsupported operatorenthält. Dieser Fehler sollte ausgelöst werden, wenn eine von der Klasse nicht unterstützte Operation versucht wird. Dazu gehören__floordiv__,__mod__,__pow__,__lshift__,__rshift__,__and__,__xor__,__or__.
Alle gültigen magischen Methoden sollten ein Number-Objekt zurückgeben.
Hinweis: Vergiss nicht, die magische Methode __str__ zu implementieren, um den Wert der Number zurückzugeben.
Eingabe | Ausgabe |
| 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