Python 문자열 대문자 변환 방법 4가지

문자열 중 일부나 전체를 대문자로 변환해야 하는 경우가 있습니다. Python 문자열 대문자 변환 방법을 살펴보겠습니다.

Python 문자열 대문자 변환: 모든 문자를 대문자로

str.upper() 메서드를 사용하면 문자열의 모든 문자를 대문자로 변환합니다.

string = "i love you!"
string.upper()
Python

str.upper() 메서드를 실행한 결과는 다음과 같이 모든 문자가 대문자로 변경된 것을 알 수 있습니다.

그림 1. Python 문자열 대문자 변환: 모든 문자를 대문자로
그림 1. Python 문자열 대문자 변환: 모든 문자를 대문자로

Python 문자열 첫 글자만 대문자로 변환

str.capitalize() 메서드

영어로 된 문장은 첫 글자를 대문자로 작성하죠. 첫 글자만 대문자로 변환하는 것은 str.capitalize() 메서드를 사용하면 됩니다.

string = "i love you!"
string.capitalize()
Python

아래의 그림은 str.capitalize() 메서드를 적용한 결과입니다.

그림 2. Python 문자열 첫 글자만 대문자로 변환
그림 2. Python 문자열 첫 글자만 대문자로 변환

str.upper() 메서드

문자열의 첫 인덱스만 대문자로 변경해 줘도 됩니다. 하지만 이렇게 복잡하게 쓰기보다는 str.capitalize() 메서드를 사용하는 편이 코드의 길이 뿐 아니라 가독성 면에서도 더 깔끔합니다.

string = "i love you!"
string[0].upper() + string[1:]
Python

Python 문자열의 단어마다 첫 글자만 대문자로 변환

영어로 된 문자열의 단어마다 첫 글자만 대문자로 바꿔야 하는 상황이라면 str.title() 메서드를 활용해 보세요.

string = "i love you!"
string.title()
Python

str.title() 메서드를 사용하면, 아래와 같이 I Love You!로 각 단어의 첫 글자가 모두 대문자로 변경된 것을 확인할 수 있습니다.

그림 3. Python 문자열의 모든 단어의 첫 글자를 대문자로 변환
그림 3. Python 문자열의 모든 단어의 첫 글자를 대문자로 변환

재미로 upper_case() 함수 구현하기

이번에는 ASCII 코드 값에 따라 대 소문자의 차잇값을 이용해서 upper() 함수를 직접 구현해 보도록 하겠습니다. 실무에서는 이런 거 하고 있으면 안 되겠죠? 그리고 제가 작성한 코드 외에도 다양한 시도들을 해 볼 수 있을 것입니다.

def upper_case(string):
  diff = ord('a') - ord('A')
  result = ''
  for char in string:
    if 'a' <= char <= 'z':
      result += chr(ord(char) - diff)
    else:
      result += char
  return result

print(upper_case("i love you!"))
Python

위의 코드를 실행하면 아래와 같이 대문자로 변환된 것을 확인할 수 있습니다.

그림 4. 대문자 변환 함수 upper_case() 직접 구현해 보기
그림 4. 대문자 변환 함수 upper_case() 직접 구현해 보기

정리

영문으로 된 문자열의 모든 문자를 대문자로 변환하는 str.upper() 메서드, 문자열의 첫 글자만 대문자로 변환하는 str.capitalize() 그리고 문자열의 모든 단어의 첫 글자를 대문자로 변환하는 str.title() 메서드에 대해서 살펴보았습니다. 필요할 때 바로바로 이용하시기 바랍니다.

그리고 마지막으로 재미삼아 직접 upper_case() 함수를 만들어 보기도 했습니다.

관련 자료

Python의 Bulit-in Types 페이지를 참고했습니다.

같이 읽으면 좋은 글

Leave a Comment