Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬으로 각 단어의 첫 글자만 대문자로 변환하는 프로그램

영어 소문자로 이루어진 문장이 주어졌을 때, 각 단어의 첫 글자만 대문자로 바꾸는 문제를 파이썬으로 해결해 보겠습니다.

예를 들어 입력이 s = "i love my country"라면, 출력은 "I Love My Country"가 되어야 합니다.

문제 해결 접근 방식

이 문제는 다음 단계를 따라 해결할 수 있습니다.

  • 문장 s를 공백 기준으로 분리하여 단어 리스트를 만듭니다.
  • 결과를 저장할 빈 리스트를 하나 생성합니다.
  • 각 단어에 대해 capitalize() 함수를 사용해 첫 글자를 대문자로 변환한 뒤 결과 리스트에 추가합니다.
  • 결과 리스트의 모든 단어를 공백으로 연결(join)하여 반환합니다.

구현 예제

아래 코드를 통해 실제 동작을 확인해 보겠습니다.

def solve(s):
   words = s.split(' ')
   ret = []
   for i in words:
      ret.append(i.capitalize())
   return ' '.join(ret)

s = "i love my country"
print(solve(s))

입력

"i love my country"

출력

I Love My Country

코드 설명

  • s.split(' '): 문장을 공백 문자를 기준으로 나누어 ['i', 'love', 'my', 'country'] 형태의 리스트를 반환합니다.
  • i.capitalize(): 단어의 첫 글자를 대문자로, 나머지 글자는 소문자로 변환합니다. 예를 들어 'i''I'가 됩니다.
  • ' '.join(ret): 리스트에 담긴 단어들을 공백 한 칸씩 두고 하나의 문자열로 합칩니다.

참고: 더 간단한 방법

리스트 컴프리헨션(list comprehension)을 활용하면 위 코드를 한 줄로 줄일 수 있습니다.

def solve(s):
   return ' '.join(word.capitalize() for word in s.split(' '))

또한 파이썬 내장 메서드인 str.title()을 사용하면 비슷한 결과를 얻을 수 있지만, title()은 아포스트로피가 포함된 단어(예: don'tDon'T)에서 의도와 다르게 동작할 수 있으므로 주의가 필요합니다. 각 단어의 첫 글자만 정확히 대문자로 바꾸려면 capitalize()를 사용하는 방식이 가장 안전합니다.