소개
이 프로젝트에서는 음이 아닌 정수의 팩토리얼을 계산하는 방법을 배우게 됩니다. 양의 정수의 팩토리얼은 해당 정수 이하의 모든 양의 정수의 곱이며, 0 의 팩토리얼은 1 입니다.
👀 미리보기
$ python factorial.py
2! = 1 * 2 = 2
8! = 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 = 40320
🎯 과제
이 프로젝트에서 다음을 배우게 됩니다:
~/project디렉토리에factorial.py파일을 만드는 방법- 음이 아닌 정수의 팩토리얼을 계산하는
factorial함수를 구현하는 방법 ValueError를 발생시켜 음수 입력을 처리하고 "Please enter a non-negative integer"라는 메시지를 표시하는 방법
🏆 성과
이 프로젝트를 완료하면 다음을 수행할 수 있습니다:
- 팩토리얼의 개념과 계산 방법을 이해합니다.
- 음이 아닌 정수의 팩토리얼을 계산하는 Python 함수를 작성합니다.
- 입력 오류를 처리하고 적절한 오류 메시지를 표시합니다.
- 실제 문제를 해결하기 위해 Python 프로그래밍 지식을 적용합니다.
factorial.py 파일 생성
이 단계에서는 ~/project 디렉토리에 factorial.py 파일을 생성합니다. 이 단계를 완료하려면 아래 단계를 따르세요:
- 새 파일을 생성하고
~/project디렉토리에factorial.py로 저장합니다.
cd ~/project
touch factorial.py
factorial.py파일에 다음 코드를 추가합니다:
def factorial(n):
"""
음이 아닌 정수의 팩토리얼을 계산합니다.
Args:
n (int): 팩토리얼을 계산할 음이 아닌 정수.
Returns:
str: 입력 정수의 팩토리얼을 "{n}! = {factors_str} = {result}" 형식으로 반환합니다.
Raises:
ValueError: 입력 정수가 음수인 경우.
"""
## 여기에 코드를 추가하세요
이것은 다음 단계에서 구현할 factorial 함수의 시작점입니다.
팩토리얼 함수 구현
이 단계에서는 factorial.py 파일에서 factorial 함수를 구현합니다. 이 단계를 완료하려면 아래 단계를 따르세요:
factorial.py파일에서## Add your code here주석을 다음 코드로 바꿉니다:
def factorial(n):
"""
음이 아닌 정수의 팩토리얼을 계산합니다.
Args:
n (int): 팩토리얼을 계산할 음이 아닌 정수.
Returns:
str: 입력 정수의 팩토리얼을 "{n}! = {factors_str} = {result}" 형식으로 반환합니다.
Raises:
ValueError: 입력 정수가 음수인 경우.
"""
if n < 0:
raise ValueError("Please enter a non-negative integer.")
elif n == 0:
return "0! = 1"
else:
result = 1
factors = []
for i in range(1, n + 1):
result *= i
factors.append(str(i))
factors_str = " * ".join(factors)
return f"{n}! = {factors_str} = {result}"
## 부분 예시 출력:
print(factorial(2))
print(factorial(8))
이 코드는 음이 아닌 정수의 팩토리얼을 계산하는 기능을 구현합니다. 음수 입력의 경우 ValueError를 발생시키고, 0 의 경우 "0! = 1"을 반환하여 처리합니다. 다른 모든 음이 아닌 정수의 경우, 1 부터 입력 숫자까지의 모든 숫자를 곱하여 팩토리얼을 계산하고 원하는 형식으로 결과를 반환합니다.
factorial.py파일을 저장합니다.
이제 factorial.py 파일이 완성되었으며, factorial 함수를 사용하여 모든 음이 아닌 정수의 팩토리얼을 계산할 수 있습니다.
- 구현을 테스트하려면 터미널에서 다음 명령을 실행합니다:
$ python factorial.py
2! = 1 * 2 = 2
8! = 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 = 40320
요약
축하합니다! 이 프로젝트를 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.



