Python에서 텍스트(문자열) 데이터는 str 객체가 담당합니다. 문자열은 변경 불가능(immutable)한 유형으로, 한 번 생성된 후에는 내용을 직접 수정할 수 없습니다. 또한 문자열은 유니코드(Unicode) 문자들의 시퀀스이기 때문에 한글을 포함한 다양한 언어의 문자를 문제없이 다룰 수 있습니다.
문자열 리터럴 표기법
Python에서는 작은따옴표('), 큰따옴표("), 그리고 세 개의 따옴표(''' 또는 """)를 사용해 문자열 리터럴을 정의할 수 있습니다.
- '작은따옴표로 감싼 문자열'
- "큰따옴표로 감싼 문자열"
- '''세 개의 작은따옴표로 감싼 문자열''' 또는 """세 개의 큰따옴표로 감싼 문자열"""
특히 삼중 따옴표(triple quotes)를 사용하면 여러 줄에 걸친 문자열(multiline string)을 간편하게 할당할 수 있어, 긴 설명문이나 문서화 문자열(docstring) 작성에 유용합니다.
주요 문자열 메서드
Python은 문자열 처리를 위한 다양한 내장 메서드를 제공합니다. 자주 사용되는 대표적인 메서드는 다음과 같습니다.
| 번호 | 메서드 및 설명 |
|---|---|
| 1 | s.capitalize() 첫 번째 문자만 대문자로 변환하고 나머지는 소문자로 만듭니다. |
| 2 | s.center(width[, fillchar]) 문자열을 지정한 너비 중앙에 배치하고, 남는 공간을 지정한 문자로 채웁니다. 기본값은 공백입니다. |
| 3 | s.count(sub[, start[, end]]) 문자열 안에서 특정 부분 문자열이 등장하는 횟수를 반환합니다. |
| 4 | s.find(sub[, start[, end]]) 부분 문자열이 처음 등장하는 위치(인덱스)를 반환하며, 없으면 -1을 반환합니다. |
| 5 | s.format(*args, **kwargs) 문자열을 서식화하여 보기 좋은 출력 결과를 만듭니다. |
| 6 | s.isalnum() 모든 문자가 알파벳 또는 숫자인지 검사합니다. |
| 7 | s.isalpha() 모든 문자가 알파벳인지 검사합니다. |
| 8 | s.isdigit() 모든 문자가 숫자(디지트)인지 검사합니다. |
| 9 | s.isspace() 문자열이 공백 문자로만 이루어져 있는지 검사합니다. |
| 10 | s.join(iterable) 반복 가능한(iterable) 요소들을 지정한 구분자로 연결하여 하나의 문자열로 합칩니다. |
| 11 | s.ljust(width[, fillchar]) 왼쪽 정렬된 문자열을 반환합니다. |
| 12 | s.rjust(width[, fillchar]) 오른쪽 정렬된 문자열을 반환합니다. |
| 13 | s.lower() 모든 문자를 소문자로 변환합니다. |
| 14 | s.split(sep=None, maxsplit=-1) 지정한 구분자를 기준으로 문자열을 분리하여 리스트로 반환합니다. |
| 15 | s.strip([chars]) 문자열 양쪽 끝에서 지정한 문자(기본값: 공백)를 제거합니다. |
| 16 | s.swapcase() 대문자는 소문자로, 소문자는 대문자로 서로 바꿉니다. |
| 17 | s.upper() 모든 문자를 대문자로 변환합니다. |
| 18 | s.zfill(width) 문자열 앞에 0을 채워 지정한 길이의 문자열로 만듭니다. |
예제 코드
myStr1 = 'This is a Python String'
myStr2 = "hello world"
print(myStr2)
print(myStr2.capitalize())
print(myStr2.center(len(myStr1)))
print(myStr1)
print(myStr1.find('Py')) # 부분 문자열 'Py'의 위치
myStr3 = 'abc123'
print(myStr3.isalnum())
print(myStr3.isdigit())
print('AB'.join('XY'))
print(myStr2.rjust(20, '_')) # 오른쪽 정렬 후 '_' 문자로 채우기
print(myStr1.swapcase())
print('2509'.zfill(10)) # 0을 채워 10자리 문자열로 만들기
실행 결과
hello world
Hello world
hello world
This is a Python String
10
True
False
XABY
_________hello world
tHIS IS A pYTHON sTRING
0000002509
정리
Python의 str 객체는 불변이며 유니코드 기반 시퀀스라는 점을 기억하면 됩니다. capitalize(), find(), join(), split() 같은 문자열 메서드를 잘 활용하면 텍스트 데이터를 손쉽게 가공할 수 있습니다. 위 예제 코드를 직접 실행해 보며 각 메서드의 동작 방식을 익혀보시기 바랍니다.