제귀 함수를 이용해서 팩토리얼을 구할 수 있습니다.
예시로 팩토리얼을 간단하게 보면 팩토리얼은 자기를 포함하여 하나씩 작은 수를 곱해가면서 1까지 곱해나가는 것을 말합니다.
0! = 1
1! = 1이고
3! = 3 x 2 x 1입니다.
N!은 N x (N-1) x (N-2) x .... 3 x 2 x 1입니다.
❇️ factorial(5)를 호출해서 n이 1이 될 때까지 재귀호출하면 다음과 같은 모양이 됩니다.

이제 if n == 1:을 만나서 factorial 함수가 1을 반환합니다. 그 뒤 1과 2를 곱해서 2를 반환하고, 3과 2를 곱해서 6을 반환하고, 4와 6을 곱해서 24를 반환하고, 5와 24를 곱해서 120을 반환하게 됩니다.

이것을 코드 만들게 되면 아래와 같습니다.
N > 1 큰 경우에는 N을 곱하고, 그 후에 N에서 값을 하나씩 빼주면서 다시 함수를 호출해서 곱하도록 하고 N <=1 인 경우 빠져나오게 하면 됩니다.
def factorial_recursion(n):
if n > 1:
return n * factorial_recursion(n-1)
else:
return 1
result0 = factorial_recursion(0) # 0! = 1
result1 = factorial_recursion(1) # 1! = 1
result2 = factorial_recursion(2) # 2! = 2 * 1
result3 = factorial_recursion(3) # 3! = 3 * 2 * 1
result4 = factorial_recursion(4) # 4! = 4 * 3 * 2 * 1
result5 = factorial_recursion(5) # 5! = 5 * 4 * 3 * 2 * 1
print(f'factorial(0) : {result0}')
print(f'factorial(1) : {result1}')
print(f'factorial(2) : {result2}')
print(f'factorial(3) : {result3}')
print(f'factorial(4) : {result4}')
print(f'factorial(5) : {result5}')
[결과]

이렇게 재귀를 이용해서 팩토리얼을 만들 수 있습니다.
반복문을 통해서도 팩토리얼을 만들 수 있습니다.
N! 은 N x (N-1) x (N-2)... 3 x 2 x 1인데 이걸 거꾸로 보면 N! 은 1 x 2 x 3 x ... (N-2) x (N-1) x N입니다. 즉, 1부터 계속해서 N까지 증가하면서 곱하는 것입니다. 이 성질을 이용해서 반복문을 통해서 구하면 됩니다.
이것은 파이썬 range를 이용하여 1 ~ N까지를 나타내려면 range(1, N+1)으로 범위를 나타낼 수 있기 때문에 range 함수와 for 반목문을 합치게 되면 손쉽게 반복문을 통해서 팩토리얼 구현할 수 있습니다.
아래는 예시 코드입니다.
def factorial_range(n):
result = 1
for val in range(1, n + 1): # 1 ~ n 까지
result *= val
return result
result0 = factorial_range(0) # 0! = 1
result1 = factorial_range(1) # 1! = 1
result2 = factorial_range(2) # 2! = 1 * 2
result3 = factorial_range(3) # 3! = 1 * 2 * 3
result4 = factorial_range(4) # 4! = 1 * 2 * 3 * 4
result5 = factorial_range(5) # 5! = 1 * 2 * 3 * 4 * 5
print(f'factorial(0) : {result0}')
print(f'factorial(1) : {result1}')
print(f'factorial(2) : {result2}')
print(f'factorial(3) : {result3}')
print(f'factorial(4) : {result4}')
print(f'factorial(5) : {result5}')
[결과]

range와 for 반복문을 이용해서 factorial 값을 구해 보았습니다.
파이썬의 math 라이브러리에 factoral 함수가 있습니다.
라이브러리 : math
함수 사용법: math.factorial(n)
입력 : 구하고자 하는 팩토리얼 n의 값을 입력합니다.
반환 : n! 결과값을 정수로 반환합니다.
💡주의 : n은 0보다 작은 음수인 경우 error를 반환합니다.
아래는 예시 코드입니다.
import math
result0 = math.factorial(0)
result1 = math.factorial(1)
result2 = math.factorial(2)
result3 = math.factorial(3)
result4 = math.factorial(4)
result5 = math.factorial(5)
print(f'math.factorial(0) : {result0}')
print(f'math.factorial(1) : {result1}')
print(f'math.factorial(2) : {result2}')
print(f'math.factorial(3) : {result3}')
print(f'math.factorial(4) : {result4}')
print(f'math.factorial(5) : {result5}')
[결과]

import math를 통해서 math 라이브러리를 임포트하고, 그 후에 math.factorial(n)에 숫자만 넣으면 알아서 팩토리얼을 구하게 됩니다.
이상으로 파이썬에서 팩토리얼을 구하는 3가지 방법(재귀, 반복, 함수)이였습니다.