Python의 문자열 유형(str)은 대문자와 소문자를 조작하기 위한 편리한 방법을 표준으로 제공합니다. 대문자와 소문자를 변환하여 대소문자를 구분할 수 있습니다.
다음 정보가 여기에 제공됩니다.
- 대문자와 소문자 간 변환
- 기본 사용법
- 전체 크기 및 절반 크기 문자 처리
str.upper()
모든 문자를 대문자로 변환str.lower()
모든 문자를 소문자로 변환str.capitalize()
첫 번째 문자를 대문자로, 나머지를 소문자로 변환합니다.str.title()
단어의 첫 글자를 대문자로, 나머지를 소문자로 변환합니다.str.swapcase()
대문자를 소문자로, 소문자를 대문자로 변환합니다.
- 대문자와 소문자 결정
str.isupper()
: 모든 문자가 대문자인지 확인str.islower()
: 모든 문자가 소문자인지 확인합니다.str.istitle()
: 타이틀 케이스인지 확인합니다.
- 대소문자를 구분하지 않고 문자열 비교
대문자와 소문자 간 변환
기본 사용법
먼저 기본적인 사용법을 설명하겠습니다. 예를 들어 모든 문자를 대문자로 표시하기 위해 upper() 메서드를 사용하지만 다른 메서드에도 동일하게 적용됩니다.
편의상 “conversion”이라고 쓰지만 파이썬에서는 string형(str) 객체를 업데이트할 수 없기 때문에 원래 문자열(예시에서는 s_org) 자체는 변경되지 않습니다.
s_org = 'pYThon proGramminG laNguAge' print(s_org.upper()) # PYTHON PROGRAMMING LANGUAGE print(s_org) # pYThon proGramminG laNguAge
변환된 문자열을 나중에 사용하고 싶다면 다음과 같이 새 변수에 저장할 수 있습니다.
s_new = s_org.upper() print(s_new) # PYTHON PROGRAMMING LANGUAGE
원래 변수를 덮어쓸 수도 있습니다.
s_org = s_org.upper() print(s_org) # PYTHON PROGRAMMING LANGUAGE
전체 크기 및 절반 크기 문자 처리
문자가 알파벳과 같이 대소문자를 구분하는 경우 1바이트 및 2바이트 문자로 변환됩니다.
숫자 및 한자와 같이 대소문자를 구분하지 않는 문자는 변경되지 않습니다. 예제는 upper()에 대한 것이지만 다른 메서드에도 동일하게 적용됩니다.
s_org = 'Pyhon Python 123' print(s_org.upper()) # PYHON PYTHON 123
str.upper(): 모든 문자를 대문자로 변환
s_org = 'pYThon proGramminG laNguAge' print(s_org.upper()) # PYTHON PROGRAMMING LANGUAGE
str.lower(): 모든 문자를 소문자로 변환
s_org = 'pYThon proGramminG laNguAge' print(s_org.lower()) # python programming language
str.capitalize(): 첫 글자를 대문자로, 나머지를 소문자로 변환
s_org = 'pYThon proGramminG laNguAge' print(s_org.capitalize()) # Python programming language
str.title(): 단어의 첫 글자를 대문자로 나머지를 소문자로 변환
이른바 타이틀 케이스로의 전환.
s_org = 'pYThon proGramminG laNguAge' print(s_org.title()) # Python Programming Language
str.swapcase(): 대문자를 소문자로, 소문자를 대문자로 변환
대문자와 소문자를 바꿉니다.
s_org = 'pYThon proGramminG laNguAge' print(s_org.swapcase()) # PytHON PROgRAMMINg LAnGUaGE
대문자와 소문자 결정
다음 예제에서 메서드는 ‘python’과 같은 문자열 리터럴에서 직접 호출되지만 이전 예제와 같이 변수에 저장할 때도 마찬가지입니다.
str.isupper(): 모든 문자가 대문자인지 확인
isupper()는 대소문자를 구분하는 문자가 하나 이상 포함되어 있고 모두 대문자이면 true를 반환하고 그렇지 않으면 false를 반환합니다.
print('PYTHON'.isupper()) # True print('Python'.isupper()) # False
문자가 대소문자를 구분하는 경우 2바이트 문자도 판단됩니다.
print('PYTHON'.isupper()) # True
대소문자를 구분하는 문자가 하나만 포함되어 있어도 대소문자를 구분하지 않는 문자는 무시되지만 대소문자를 구분하지 않는 문자가 포함되지 않은 경우(모든 문자는 대소문자를 구분하지 않음) 결정이 false입니다.
print('PYTHON 123'.isupper()) # True print('123'.isupper()) # False
str.islower(): 모든 문자가 소문자인지 확인
islower()는 대소문자를 구분하는 문자가 하나 이상 포함되어 있고 모두 소문자이면 true를 반환하고 그렇지 않으면 false를 반환합니다.
print('python'.islower()) # True print('Python'.islower()) # False
문자가 대소문자를 구분하는 경우 2바이트 문자도 판단됩니다.
print('python'.islower()) # True
대소문자를 구분하는 문자가 하나만 포함되어 있어도 대소문자를 구분하지 않는 문자는 무시되지만 대소문자를 구분하지 않는 문자가 포함되지 않은 경우(모든 문자는 대소문자를 구분하지 않음) 결정이 false입니다.
print('python 123'.islower()) # True print('123'.islower()) # False
str.istitle(): 대소문자가 제목 대소문자인지 확인합니다.
istitle()은 문자열이 제목의 경우(단어의 첫 글자는 대문자, 나머지는 소문자) true를 반환하고, 그렇지 않으면 false를 반환합니다.
print('Python Programming Language'.istitle()) # True print('PYTHON Programming Language'.istitle()) # False
대소문자를 구분하지 않는 문자가 포함된 경우 대소문자를 구분하지 않는 문자 앞에 소문자가 있으면 false가 됩니다.
print('★Python Programming Language'.istitle()) # True print('Python★ Programming Language'.istitle()) # True print('Py★thon Programming Language'.istitle()) # False
위의 예와 같이 문자열이 많지는 않지만 서수와 기타 경우에 숫자를 포함하는 것이 현실적입니다.
print('The 1st Team'.istitle()) # False print('The 1St Team'.istitle()) # True
대소문자를 구분하는 문자가 포함되지 않은 경우(모든 문자는 대소문자를 구분하지 않음) false입니다.
print('123'.istitle()) # False
대소문자를 구분하지 않고 문자열 비교
문자열을 비교할 때 다른 대문자와 소문자는 동일한 것으로 간주되지 않습니다.
s1 = 'python' s2 = 'PYTHON' print(s1 == s2) # False
대소문자를 구분하지 않고 비교하려면 upper() 또는 lower()를 사용하여 둘을 변환하고 비교할 수 있습니다.
print(s1.upper() == s2.upper()) # True print(s1.lower() == s2.lower()) # True print(s1.capitalize() == s2.capitalize()) # True print(s1.title() == s2.title()) # True