파이썬 문자열 함수 중 대문자로 바꾸는 함수인 upper()와 capitalize(), title()을 예시를 통해 비교해보고자 한다.
문자열 s1='abc'가 있을 때 각 함수를 적용한 결과는 다음과 같다.
upper() 함수는 모든 문자열을 대문자로 바꾸고, capitalize()와 title()은 문자열의 맨 앞글자만 대문자로 바꾼다.
그럼 capitalize()와 title()은 같은 역할을 하는 것일까?
s2='abc def'와 같이 공백이 있는 경우의 capitalize()와 title() 함수 적용 결과는 다음과 같다.
capitalize() 함수는 문자열 s2의 맨 앞글자인 a만을 대문자 A로 바꾼 반면, title() 함수는 공백을 기준으로 문자열을 분리한 듯 a와 d를 각각 대문자 A, D로 바꿨다.
이 경우를 통해 capitalize()와 title()은 다른 결과를 만드는 것을 알 수 있다.
그럼 다음 예시를 통해 title()의 문자열을 구분기준을 살펴보자.
s3은 문자열 사이에 숫자가 있는 경우, s4는 문자열 사이에 특수문자가 있는 경우이다.
s3과 s4의 결과는 동일하다.
capitalize() 함수는 전체 문자열의 맨 앞 글자만 대문자로 바꾸었고, title() 함수는 숫자, 특수문자를 기준으로 문자열을 구분하여 각 문자열의 맨 앞글자를 대문자로 바꾸었다.
s5에는 숫자, 공백이 포함되어 있다. s5에 각 함수를 적용시켜 보아도 결과는 동일한다.
정리하자면,
capitalize()는 전체 문자열의 맨 앞글자만 대문자로 변경하고
title()은 숫자, 공백, 특수문자를 기준으로 문자열을 구분하여 분리된 문자열의 첫 글자를 대문자로 변경한다.