Հատուկ հաշվիչի ստեղծում
Ձեր խնդիրն է ստեղծել Number class, որն օգտագործում է Python-ի կախարդական մեթոդները (__add__, __sub__, __mul__, __truediv__) մաթեմատիկական գործողություններ կատարելու համար: Բայց class-ը պետք է լինի հզոր և կարողանա կարգավորել տարբեր բացառություններ, որոնք միգուցե առաջանան նշված գործողությունների ընթացքում.
Եթե փորձ է արվում բաժանել զրոյի վրա, պետք է raise արվի
ZeroDivisionError՝Cannot divide by zeroհաղորդագրությամբ:Եթե մուտքագրումներից որևէ մեկը չի կարող վերածվել թվի, պետք է
raiseարվիValueError՝Invalid number inputհաղորդագրությամբ:Եթե օպերատորը
Numberչէ, պետք է raise արվիTypeError՝Operator must be a Numberհաղորդագրությամբ:Բացի այդ, դուք պետք է ստեղծեք հատուկ բացառություն՝
UnsupportedOperatorError, որը ժառանգում էValueError-ից՝Unsupported operatorհաղորդագրությամբ: Այս սխալը պետք էraiseարվի, եթե փորձ է արվում կատարել գործողություն, որը, class-ի կողմից չի ընդունվում: Օրինակ՝__floordiv__,__mod__,__pow__,__lshift__,__rshift__,__and__,__xor__,__or__։
Բոլոր վավեր կախարդական մեթոդները պետք է վերադարձնեն Number օբյեկտ:
Նշում: Մի մոռացեք իրականացնել __str__ կախարդական մեթոդը՝ Number-ի արժեքը վերադարձնելու համար:
Մուտք | Ելք |
| 12 |
| Cannot divide by zero |
| Invalid number input |
| Unsupported operator |
| Operator must be a Number |
| 20 |
Constraints
Time limit: 2 seconds
Memory limit: 512 MB
Output limit: 1 MB