Հատուկ հաշվիչի ստեղծում

Ձեր խնդիրն է ստեղծել Number կլաս, որն օգտագործում է Python-ի կախարդական մեթոդները (__add__, __sub__, __mul__, __truediv__) մաթեմատիկական գործողություններ կատարելու համար: Բայց կլասը պետք է լինի հզոր և կարողանա կարգավորել տարբեր բացառություններ, որոնք միգուցե առաջանան նշված գործողությունների ընթացքում:
Եթե փորձ է արվում բաժանել զրոյի վրա, ապա պետք է կատարել raise ZeroDivisionError:
Եթե մուտքագրումներից որևէ մեկը չի կարող վերածվել թվի, պետք է raise արվի ValueError:
Եթե օպերատորը տող չէ, ապա պետք է raise արվի TypeError:
Բացի այդ, դուք պետք է ստեղծեք հատուկ բացառություն՝ UnsupportedOperatorError, որը ժառանգում է ValueError-ից: Այս սխալը պետք է raise արվի, եթե փորձ է արվում կատարել գործողություն, որը, սակայն, կլասի կողմից չի ընդունվում: Օրինակ՝ __floordiv__, __mod__, __pow__, __lshift__, __rshift__, __and__, __xor__, __or__։
Մուտք
Ելք
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
 

Constraints

Time limit: 2.4 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in