Fix doctest power recursion (#10659)

* Added doctests to power_using_recursion.py

* Added doctest to power_using_recursion.py

* Update power_using_recursion.py

* Update power_using_recursion.py

---------

Co-authored-by: Christian Clauss <cclauss@me.com>
This commit is contained in:
Jai Vignesh J 2023-10-18 04:20:57 +05:30 committed by GitHub
parent 9da6f48b46
commit 788e4ede9b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -15,18 +15,35 @@
def power(base: int, exponent: int) -> float: def power(base: int, exponent: int) -> float:
""" """
power(3, 4) >>> power(3, 4)
81 81
>>> power(2, 0) >>> power(2, 0)
1 1
>>> all(power(base, exponent) == pow(base, exponent) >>> all(power(base, exponent) == pow(base, exponent)
... for base in range(-10, 10) for exponent in range(10)) ... for base in range(-10, 10) for exponent in range(10))
True True
>>> power('a', 1)
'a'
>>> power('a', 2)
Traceback (most recent call last):
...
TypeError: can't multiply sequence by non-int of type 'str'
>>> power('a', 'b')
Traceback (most recent call last):
...
TypeError: unsupported operand type(s) for -: 'str' and 'int'
>>> power(2, -1)
Traceback (most recent call last):
...
RecursionError: maximum recursion depth exceeded
""" """
return base * power(base, (exponent - 1)) if exponent else 1 return base * power(base, (exponent - 1)) if exponent else 1
if __name__ == "__main__": if __name__ == "__main__":
from doctests import testmod
testmod()
print("Raise base to the power of exponent using recursion...") print("Raise base to the power of exponent using recursion...")
base = int(input("Enter the base: ").strip()) base = int(input("Enter the base: ").strip())
exponent = int(input("Enter the exponent: ").strip()) exponent = int(input("Enter the exponent: ").strip())