DAY 17: MORE EXCEPTIONS

Yesterday’s challenge was about exceptions and today was a continuation on that topic but on a different aspect; raising an Exception.

Raising an exception is when one forces an exception to occur, it’s identified by the keyword raise followed by an exception instance or exception class then add a message to be displayed when the exception occurs. E.g. raise Exception(‘my message here’)

The Task:
Write a Calculator class with a single method: int power(int,int). The power method takes two integers, n and p, as parameters and returns the integer result of n^p. If either n or p is negative, then the method must throw an exception with the message: n and p should be non-negative.

<span>class</span> <span>Calculator</span><span>:</span>
<span>def</span> <span>power</span><span>(</span><span>self</span><span>,</span><span>n</span><span>,</span><span>p</span><span>):</span>
<span>#check if either n or p is negative </span> <span>if</span> <span>n</span> <span><</span> <span>0</span> <span>or</span> <span>p</span> <span><</span> <span>0</span><span>:</span>
<span>#raising the exception if either of the values is negative </span> <span>raise</span> <span>Exception</span><span>(</span><span>'n and p should be non-negative'</span><span>)</span>
<span>else</span><span>:</span>
<span># returning the value of n to the power of p </span> <span>return</span> <span>n</span> <span>**</span> <span>p</span>
<span>cl1</span> <span>=</span> <span>Calculator</span><span>()</span>
<span>T</span> <span>=</span> <span>int</span><span>(</span><span>input</span><span>())</span> <span>#number of test cases to be input #looping though every test case </span><span>for</span> <span>i</span> <span>in</span> <span>range</span><span>(</span><span>T</span><span>):</span>
<span>#create two variables as the input is space-separated </span> <span>n</span><span>,</span> <span>p</span> <span>=</span> <span>map</span><span>(</span><span>int</span><span>,</span> <span>input</span><span>().</span><span>split</span><span>())</span>
<span>try</span><span>:</span>
<span>ans</span> <span>=</span> <span>cl1</span><span>.</span><span>power</span><span>(</span><span>n</span><span>,</span><span>p</span><span>)</span>
<span>print</span><span>(</span><span>ans</span><span>)</span>
<span>except</span> <span>Exception</span> <span>as</span> <span>e</span><span>:</span>
<span>print</span><span>(</span><span>e</span><span>)</span>
<span>''' Sample Input 4 3 5 2 4 -1 -2 -1 3 Sample Output 243 16 n and p should be non-negative n and p should be non-negative '''</span>
<span>class</span> <span>Calculator</span><span>:</span>
    <span>def</span> <span>power</span><span>(</span><span>self</span><span>,</span><span>n</span><span>,</span><span>p</span><span>):</span>
        <span>#check if either n or p is negative </span>        <span>if</span> <span>n</span> <span><</span> <span>0</span> <span>or</span> <span>p</span> <span><</span> <span>0</span><span>:</span>
            <span>#raising the exception if either of the values is negative </span>            <span>raise</span> <span>Exception</span><span>(</span><span>'n and p should be non-negative'</span><span>)</span>
        <span>else</span><span>:</span>
            <span># returning the value of n to the power of p </span>            <span>return</span> <span>n</span> <span>**</span> <span>p</span>


<span>cl1</span> <span>=</span> <span>Calculator</span><span>()</span>
<span>T</span> <span>=</span> <span>int</span><span>(</span><span>input</span><span>())</span> <span>#number of test cases to be input #looping though every test case </span><span>for</span> <span>i</span> <span>in</span> <span>range</span><span>(</span><span>T</span><span>):</span>
    <span>#create two variables as the input is space-separated </span>    <span>n</span><span>,</span> <span>p</span> <span>=</span> <span>map</span><span>(</span><span>int</span><span>,</span> <span>input</span><span>().</span><span>split</span><span>())</span>
    <span>try</span><span>:</span>
        <span>ans</span> <span>=</span> <span>cl1</span><span>.</span><span>power</span><span>(</span><span>n</span><span>,</span><span>p</span><span>)</span>
        <span>print</span><span>(</span><span>ans</span><span>)</span>
    <span>except</span> <span>Exception</span> <span>as</span> <span>e</span><span>:</span>
        <span>print</span><span>(</span><span>e</span><span>)</span>


<span>''' Sample Input 4 3 5 2 4 -1 -2 -1 3 Sample Output 243 16 n and p should be non-negative n and p should be non-negative '''</span>
class Calculator: def power(self,n,p): #check if either n or p is negative if n < 0 or p < 0: #raising the exception if either of the values is negative raise Exception('n and p should be non-negative') else: # returning the value of n to the power of p return n ** p cl1 = Calculator() T = int(input()) #number of test cases to be input #looping though every test case for i in range(T): #create two variables as the input is space-separated n, p = map(int, input().split()) try: ans = cl1.power(n,p) print(ans) except Exception as e: print(e) ''' Sample Input 4 3 5 2 4 -1 -2 -1 3 Sample Output 243 16 n and p should be non-negative n and p should be non-negative '''

Enter fullscreen mode Exit fullscreen mode

原文链接:DAY 17: MORE EXCEPTIONS

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
The shortest way to do many things is to only one thing at a time.
做许多事情的捷径就是一次只做一件一件事
评论 抢沙发

请登录后发表评论

    暂无评论内容