Skip to content

Commit 788e4ed

Browse files
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>
1 parent 9da6f48 commit 788e4ed

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

maths/power_using_recursion.py

+18-1
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,35 @@
1515

1616
def power(base: int, exponent: int) -> float:
1717
"""
18-
power(3, 4)
18+
>>> power(3, 4)
1919
81
2020
>>> power(2, 0)
2121
1
2222
>>> all(power(base, exponent) == pow(base, exponent)
2323
... for base in range(-10, 10) for exponent in range(10))
2424
True
25+
>>> power('a', 1)
26+
'a'
27+
>>> power('a', 2)
28+
Traceback (most recent call last):
29+
...
30+
TypeError: can't multiply sequence by non-int of type 'str'
31+
>>> power('a', 'b')
32+
Traceback (most recent call last):
33+
...
34+
TypeError: unsupported operand type(s) for -: 'str' and 'int'
35+
>>> power(2, -1)
36+
Traceback (most recent call last):
37+
...
38+
RecursionError: maximum recursion depth exceeded
2539
"""
2640
return base * power(base, (exponent - 1)) if exponent else 1
2741

2842

2943
if __name__ == "__main__":
44+
from doctests import testmod
45+
46+
testmod()
3047
print("Raise base to the power of exponent using recursion...")
3148
base = int(input("Enter the base: ").strip())
3249
exponent = int(input("Enter the exponent: ").strip())

0 commit comments

Comments
 (0)