एक कस्टम कैलकुलेटर बनाना

आपका कार्य एक 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

To check your solution you need to sign in
Sign in to continue