본문 바로가기
Understanding Python

[py] capitalize()와 upper()와 title()의 차이점

by Luciditas 2023. 6. 22.
728x90

Programmers에서 코딩 테스트 문제를 풀다가 capitalize()라는 메서드를 알게 되었다.

기존에 알고 있었던 upper()와 무슨 차이가 있는지 또 다른 대문자 변환 메서드인 title()까지 정리를 해보려고 한다.

 

upper() : 문자열에서 모든 소문자를 대문자로 바꿔주는 METHOD.

 

upper()는 문자열에서 소문자로 작성되어 있는 모든 글자를 대문자로 바꾸어 준다.

# 1
greeting = "good morning"

print (greeting)

만약 다음과 같은 코드가 있다고 생각해보자.

print(greeting)을 하면 good morning이 출력된다.

 

greeting에 upper()를 달아보면 어떻게 나올까?

# 2
greeting = "good morning"
print (greeting.upper())

print(greeting.upper())을 하면 GOOD MORNING이 출력된다.

 

capitalize(): 문자열에서 맨 앞에 있는 글자만 대문자로 바꾸어 주는 Method.

만약 첫 번째 글자가 알파벳이 아니라면 그대로 두고 뒤따르는 알파벳을 소문자로 만든다.

# 3
greeting = "good morning"
print (greeting.capitalize())

위 코드에서 출력되는 값은 Good morning이다.

 

그렇다면 greeting이 good morning이 아니라 1good morning 일때 어떻게 출력이 될까?

# 4
greeting = "1good morning"
print (greeting.capitalize())

print(greeting.capitalize())는 1good morning이 될 것이다.

첫 째 글자가 알파벳이 아니기 때문에 그대로 두고 나머지는 소문자이기 때문에 바뀌는 것이 없을 것이다.

 

그렇다면 greeting이 1Good Morning일 때는 출력되는 값은 무엇일까?

capitalize()는 문자열의 첫 알파벳만 대문자로 바꿔주는 Method이기 때문에 # 4의 code와 같이 1good morning이 출력된다.

 

capitalize()는 문자열의 첫 번째 글자가 알파벳인 경우 딱 그 녀석만 대문자로 바꿔준다고 할 수 있겠다.

 

 

title() : 문자열 내의 모든 단어의 첫글자를 대문자로 만들어주는 Method.

만약 단어의 첫 글자가 알파벳이 아니라면 그 단어의 첫 알파벳을 대문자로 바꿔준다.

# 5
greeting = "good morning"
print (greeting.title())

print(greeting.title())의 출력 값은 뭘까?

Good Morining이 나온다. 각 단어의 첫 글자가 대문자로 바뀌는 것이다.

 

그렇다면 1good morning을 출력하면 어떻게 될까?

# 6
greeting = "1good morning"
print (greeting.title())

위 코드를 보면 good 앞에 1이 붙어 있는 것을 알 수 있다.

이 경우에 title() mehod를 사용하면 1Good Morning이 나온다.

capitalize()와는 달리 단어의 첫 글자가 알파벳이 아니라면 그 단어의 가장 먼저오는 알파벳을 대문자로 바꾸어 주기 때문이다.

 

위와 같이 upper(), capitalize(), title() method에 대해 정리해 보았다.

소문자로 바꿔주는 메서드는 lower()말고는 따로 없다고한다.

 

(독일어의 ß를 소문자로 바꿔주는 메서드인 casefold()가 있기는 하지만 일반적인 알파벳에서는 lower()와 같은 기능을 한다고 한다.)

 

728x90