https://docs.python.org/3/library/stdtypes.html#string-methods
str.capitalize()
str의 첫 단어의 첫 문자는 대문자화하고, 나머지 문자는 소문자화한 새로운 string 반환한다.
첫 단어의 시작이 숫자나 특수문자일 경우에는 아무 것도 대문자화되지 않는다.
>>> a = "hElLo"
>>> b = a.capitalize()
>>> b
'Hello'
>>> a
'hElLo'
>>> 'hello world'.capitalize()
'Hello world'
str.title()
str의 모든 단어의 시작 문자는 대문자화하고 나머지는 소문자화한 string을 반환한다.
capitalize와의 차이점은, capitalize는 첫 단어의 첫 문자만 대문자화하고 나머지는 다 소문자화하는데, title은 모든 단어의 첫 문자를 대문자화하고 나머지를 소문자화한다.
단어를 구분하는 기준은 공백, 숫자 특수문자이다.
따라서 숫자/특수문자 다음에 오는 문자는 대문자화한다.
>>> h = 'hELlo wOrlD'
>>> h.capitalize()
'Hello world'
>>> h.title()
'Hello World'
>>> 'hEllo $wORld'.title()
'Hello $World'
>>> 'he2llo'.title()
'He2Llo'
import string
string.capwords(str, sep=None)
str의 모든 글자의 첫 문자를 대문자로 바꾼다.
sep을 설정 안 할 경우 공백으로 단어를 구분한다.
숫자나 특수문자 다음에 오는 문자는 대문자화하지 않는다.
sep을 설정할 경우 sep을 기준으로 단어를 구분하여 sep 다음에 오는 문자를 대문자화한다.
>>> a = "i'm word"
>>> string.capwords(a)
"I'm Word" #capwords는 sep(설정 안 할 경우 공백) 다음의 문자만 대문자화한다.
>>> a.title()
"I'M Word" #title의 경우 특수문자 다음의 문자도 대문자화한다.
>>> string.capwords('hello world', sep='l')
'HellO worlD'
str.swapcase()
대문자는 소문자로, 소문자는 대문자로 바꿔준다.
>>> a = 'hElLo'
>>> a.swapcase()
'HeLlO'
str.lower()
str의 모든 문자를 소문자로 바꾼 string을 반환한다.
>>> a = 'hElLo'
>>> a.lower()
'hello'
str.upper()
str의 모든 문자를 대문자로 바꾼 string을 반환한다.
>>> a = 'hElLo'
>>> a.upper()
'HELLO'
str.casefold()
lower와 비슷하다. 단지, lower는 ASCII 코드에 적용되고, casefold는 모든 UNICODE에 적용된다고 한다.
str.islower()
str에 있는 모든 문자가 소문자일 경우에 True를 반환한다.
str 안에 1개라도 대문자가 있거나, case가 있는 문자가 아예 없을 경우 False를 반환한다.
>>> h = 'hello'
>>> h.islower()
True
>>> h = 'Hello'
>>> h.islower()
False
>>> h = '가나다' #case가 있는 문자가 아예 없으므로
>>> h.islower()
False
str.isupper()
str 안에 있는 모든 문자가 대문자일 경우에 True를 반환한다.
str 안에 1개라도 소문자가 있거나, case가 있는 문자가 아예 없을 경우 False를 반환한다.
>>> 'HELLO'.isupper()
True
>>> 'Hello'.isupper()
False
>>> '가나다'.isupper()
False
str.istitle()
str 안에 있는 모든 문자의 첫 단어가 대문자이면 True를 반환한다.
공백, 숫자, 특수문자로 단어를 구분한다.
>>> "Hello 22world".istitle()
False
>>> "Hello 22World".istitle()
True
>>> "Hello22world".istitle()
False
>>> "Hello22World".istitle()
True