소개
이 프로젝트에서는 두운시 (acrostic poem) 에 숨겨진 메시지를 해독하는 방법을 배우게 됩니다. 두운시는 각 행의 첫 글자가 단어나 구절을 이루는 시의 한 종류입니다. 여러분의 과제는 각 행의 첫 단어를 추출하여 연결하여 숨겨진 메시지를 드러내는 Python 함수를 작성하는 것입니다.
👀 미리보기
## 예시
$ python3 acrostic_poetry.py
RainItItAnd
🎯 과제
이 프로젝트에서 다음을 배우게 됩니다:
- 두운시 해독 프로젝트의 문제 설명 및 요구 사항을 이해하는 방법
- 두운시의 메시지를 해독하는
acrostic_poetry_decryption(poem)함수를 구현하는 방법 - 예시 입력을 사용하여 해독 함수를 테스트하는 방법
🏆 성과
이 프로젝트를 완료하면 다음을 수행할 수 있습니다:
- 텍스트 조작 및 패턴 추출과 관련된 문제를 이해하고 해결할 수 있습니다.
- 두운시에 숨겨진 메시지를 해독할 수 있는 Python 함수를 작성할 수 있습니다.
- 코드가 올바르게 작동하는지 테스트하고 디버깅할 수 있습니다.
문제 이해
이 단계에서는 두운시 해독 프로젝트의 문제 설명과 요구 사항을 이해하는 방법을 배우게 됩니다.
이 프로젝트의 목표는 시의 내용을 나타내는 문자열을 입력으로 받아 각 행의 첫 단어를 추출하여 연결함으로써 해독된 메시지를 반환하는 함수 acrostic_poetry_decryption(poem)을 작성하는 것입니다.
프로젝트의 요구 사항은 다음과 같습니다:
re라이브러리를 제외하고 다른 표준 라이브러리나 타사 라이브러리를 사용하지 마십시오.- 함수의
poem매개변수는 비어 있거나None이거나 다른 값일 수 있는 문자열일 수 있습니다. - 파일 경로, 파일 이름 (
acrostic_poetry.py), 또는 함수 이름 (acrostic_poetry_decryption(poem)) 을 수정하지 마십시오. - 온라인 환경에서 코드를 디버깅할 때는
python3 acrostic_poetry.py명령을 사용하여 Python3 를 호출하십시오.
해독 함수 구현
이 단계에서는 두운시의 메시지를 해독하기 위해 acrostic_poetry_decryption(poem) 함수를 구현합니다.
다음은 acrostic_poetry.py 파일의 시작 코드입니다:
import re
from typing import Optional
def acrostic_poetry_decryption(poem: str) -> Optional[str]:
"""
각 행의 첫 단어를 추출하여 연결함으로써 두운시의 메시지를 해독합니다.
"""
## 입력 내용이 비어 있으면 `None` 을 반환합니다.
if not poem:
return None
## TODO: 해독 로직 구현
## 1. ',' 또는 '.' 구분자를 사용하여 시를 행으로 분할합니다.
## 2. 각 행에서 첫 번째 단어를 추출합니다.
## 3. 첫 번째 단어를 연결하여 해독 텍스트를 얻습니다.
## 4. 결과 문자열을 변수 `decryption_text` 에 할당합니다.
return decryption_text
해독 함수를 구현하는 방법은 다음과 같습니다:
re.split()함수와r"[,.]"정규 표현식 패턴을 사용하여poem문자열을 행 목록으로 분할합니다.- 행 목록을 반복하고, 각 행에 대해 공백으로 행을 분할하고 첫 번째 요소를 가져와 첫 번째 단어를 추출합니다.
- 모든 첫 번째 단어를 연결하여 해독 텍스트를 얻습니다.
- 해독 텍스트를
decryption_text변수에 할당하고 반환합니다.
다음은 완성된 코드입니다:
import re
from typing import Optional
def acrostic_poetry_decryption(poem: str) -> Optional[str]:
"""
각 행의 첫 단어를 추출하여 연결함으로써 두운시의 메시지를 해독합니다.
"""
## 입력 내용이 비어 있으면 `None` 을 반환합니다.
if not poem:
return None
## ',' 또는 '.' 구분자를 사용하여 시를 행으로 분할합니다.
lines = re.split(r"[,.]", poem)
## 각 행에서 첫 번째 단어를 추출합니다.
words = [line.strip().split(" ")[0] for line in lines]
## 첫 번째 단어를 연결하여 해독 텍스트를 얻습니다.
decryption_text = "".join(words)
return decryption_text
해독 함수 테스트
이 단계에서는 챌린지에 제공된 예제를 사용하여 acrostic_poetry_decryption(poem) 함수를 테스트합니다.
acrostic_poetry.py파일의 끝에 다음 코드를 추가합니다:
if __name__ == "__main__":
string = "Rain is falling all around, It falls on field and tree. It rains on the umbrella here, And on the ships at sea."
print(acrostic_poetry_decryption(string))
- 파일을 저장하고 터미널에서 다음 명령을 실행합니다:
python3 acrostic_poetry.py
출력 결과는 다음과 같아야 합니다:
RainItItAnd
이는 acrostic_poetry_decryption(poem) 함수가 예상대로 작동함을 확인합니다.
축하합니다! 두운시 해독 프로젝트를 완료했습니다. 질문이 있거나 추가 지원이 필요한 경우 언제든지 문의하십시오.
요약
축하합니다! 이 프로젝트를 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.



