एक कस्टम कैलकुलेटर बनाना
आपका कार्य एक
Number
क्लास बनाना है जो पायथन के मैजिक मेथड्स (__add__
, __sub__
, __mul__
, __truediv__
) का उपयोग करके गणितीय गणनाएं कर सके। लेकिन यह क्लास मजबूत होनी चाहिए और इन ऑपरेशन्स के दौरान उत्पन्न होने वाली विभिन्न एक्सेप्शन्स को संभालने में सक्षम हो:- यदि शून्य से विभाजन करने का प्रयास किया जाता है, तो
ZeroDivisionError
उठाना चाहिए जिसके साथ संदेश होCannot divide by zero
।
- यदि इनपुट्स में से किसी को संख्या में परिवर्तित नहीं किया जा सकता है, तो
ValueError
उठाना चाहिए जिसके साथ संदेश होInvalid number input
।
- यदि ऑपरेटर
Number
नहीं है, तोTypeError
उठाना चाहिए जिसके साथ संदेश होOperator must be a Number
।
- इसके अतिरिक्त, आपको एक कस्टम एक्सेप्शन
UnsupportedOperatorError
को लागू करना चाहिए जोValueError
से इनहेरिट करता हो, और जिसका संदेश होUnsupported operator
। यह त्रुटि तब उठानी चाहिए जब ऐसा ऑपरेशन किया जाए जो इस क्लास द्वारा समर्थित नहीं है। इसमें शामिल हैं__floordiv__
,__mod__
,__pow__
,__lshift__
,__rshift__
,__and__
,__xor__
,__or__
।
सभी मान्य मैजिक मेथड्स एक
Number
ऑब्जेक्ट को वापस करने चाहिए।नोट:
Number
के मान को प्रदान करने के लिए __str__
मैजिक मेथड को लागू करना न भूलें।इनपुट | आउटपुट |
a=Number(10); b=Number(2); print(a+b); print(a/b); | 12
5 |
a=Number(10); b=Number(0); print(a/b); | Cannot divide by zero |
a=Number('ten'); b=Number(2); print(a+b); | Invalid number input |
a=Number(10); b=Number(2); print(a**b); | Unsupported operator |
a=Number(10); b=2; print(a+b); | Operator must be a Number |
a = Number(10); b = Number(2); c = Number(a * b); print(c.value) | 20 |
a = Number(10); b = Number(2); c = Number((a - b) ** 2); print(c.value) | Unsupported operator |
Constraints
Time limit: 2 seconds
Memory limit: 512 MB
Output limit: 1 MB