Skip to content

Commit e036226

Browse files
committed
add docstring explaining factorial function
1 parent 8106aea commit e036226

File tree

1 file changed

+6
-28
lines changed

1 file changed

+6
-28
lines changed

maths/factorial.py

Lines changed: 6 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -3,36 +3,14 @@
33
"""
44

55

6-
def factorial(number: int) -> int:
6+
def factorial(n):
77
"""
8-
Calculate the factorial of specified number (n!).
9-
10-
>>> import math
11-
>>> all(factorial(i) == math.factorial(i) for i in range(20))
12-
True
13-
>>> factorial(0.1)
14-
Traceback (most recent call last):
15-
...
16-
ValueError: factorial() only accepts integral values
17-
>>> factorial(-1)
18-
Traceback (most recent call last):
19-
...
20-
ValueError: factorial() not defined for negative values
21-
>>> factorial(1)
22-
1
23-
>>> factorial(6)
24-
720
25-
>>> factorial(0)
26-
1
8+
Returns the factorial of a non-negative integer n.
9+
Uses recursion.
2710
"""
28-
if number != int(number):
29-
raise ValueError("factorial() only accepts integral values")
30-
if number < 0:
31-
raise ValueError("factorial() not defined for negative values")
32-
value = 1
33-
for i in range(1, number + 1):
34-
value *= i
35-
return value
11+
if n == 0:
12+
return 1
13+
return n * factorial(n - 1)
3614

3715

3816
def factorial_recursive(n: int) -> int:

0 commit comments

Comments
 (0)