문자열 중 일부나 전체를 대문자로 변환해야 하는 경우가 있습니다. Python 문자열 대문자 변환 방법을 살펴보겠습니다.
목차
Python 문자열 대문자 변환: 모든 문자를 대문자로
str.upper() 메서드를 사용하면 문자열의 모든 문자를 대문자로 변환합니다.
string = "i love you!"
string.upper()
Pythonstr.upper() 메서드를 실행한 결과는 다음과 같이 모든 문자가 대문자로 변경된 것을 알 수 있습니다.
Python 문자열 첫 글자만 대문자로 변환
str.capitalize() 메서드
영어로 된 문장은 첫 글자를 대문자로 작성하죠. 첫 글자만 대문자로 변환하는 것은 str.capitalize() 메서드를 사용하면 됩니다.
string = "i love you!"
string.capitalize()
Python아래의 그림은 str.capitalize() 메서드를 적용한 결과입니다.
str.upper() 메서드
문자열의 첫 인덱스만 대문자로 변경해 줘도 됩니다. 하지만 이렇게 복잡하게 쓰기보다는 str.capitalize() 메서드를 사용하는 편이 코드의 길이 뿐 아니라 가독성 면에서도 더 깔끔합니다.
string = "i love you!"
string[0].upper() + string[1:]
PythonPython 문자열의 단어마다 첫 글자만 대문자로 변환
영어로 된 문자열의 단어마다 첫 글자만 대문자로 바꿔야 하는 상황이라면 str.title() 메서드를 활용해 보세요.
string = "i love you!"
string.title()
Pythonstr.title() 메서드를 사용하면, 아래와 같이 I Love You!로 각 단어의 첫 글자가 모두 대문자로 변경된 것을 확인할 수 있습니다.
재미로 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위의 코드를 실행하면 아래와 같이 대문자로 변환된 것을 확인할 수 있습니다.
정리
영문으로 된 문자열의 모든 문자를 대문자로 변환하는 str.upper() 메서드, 문자열의 첫 글자만 대문자로 변환하는 str.capitalize() 그리고 문자열의 모든 단어의 첫 글자를 대문자로 변환하는 str.title() 메서드에 대해서 살펴보았습니다. 필요할 때 바로바로 이용하시기 바랍니다.
그리고 마지막으로 재미삼아 직접 upper_case() 함수를 만들어 보기도 했습니다.
관련 자료
Python의 Bulit-in Types 페이지를 참고했습니다.