문자열 생성 방법
파이썬에서 문자열은 작은따옴표('), 큰따옴표("), 그리고 세 개의 따옴표(''' 또는 """)를 사용하여 생성할 수 있습니다.
# 다양한 문자열 선언 방식
single_quote = 'Python'
double_quote = "Programming"
triple_quote_multi = """이것은 여러 줄에 걸친
문자열을 생성할 때 사용합니다."""
# 변수에 할당하지 않은 세 개의 따옴표는 주석(Docstring)으로 간주됩니다.
"""
이 부분은 변수에 대입되지 않았으므로
프로그램 실행에 영향을 주지 않는 주석입니다.
"""
주의할 점은 따옴표를 시작할 때와 끝낼 때 동일한 종류를 사용해야 한다는 것입니다.
이스케이프 시퀀스 (Escape Characters)
특수 문자를 표현하기 위해 백슬래시(\)와 함께 사용하는 이스케이프 문자는 다음과 같습니다.
| 문자 | 설명 |
|---|---|
| \\ | 백슬래시(\) 자체 |
| \' | 작은따옴표 |
| \" | 큰따옴표 |
| \n | 줄 바꿈 (Line Feed) |
| \t | 탭 (Horizontal Tab) |
| \r | 캐리지 리턴 (Carriage Return) |
문자열 연산자
파이썬은 문자열 처리를 위해 직관적인 연산자를 제공합니다. str_a = "Hello", str_b = "World"라고 가정했을 때의 예시입니다.
| 연산자 | 기능 | 예시 |
|---|---|---|
| + | 문자열 연결 | str_a + str_b → 'HelloWorld' |
| * | 문자열 반복 | str_a * 2 → 'HelloHello' |
| [] | 인덱싱 (특정 위치 문자 추출) | str_a[0] → 'H' |
| [:] | 슬라이싱 (범위 추출) | str_a[1:3] → 'el' |
| in | 포함 여부 확인 (True/False) | 'H' in str_a → True |
| not in | 미포함 여부 확인 | 'X' not in str_a → True |
| r/R | Raw String (이스케이프 무시) | r'\n' → '\n' 그대로 출력 |
문자열 포맷팅 (%)
% 연산자를 사용하여 문자열 내에 특정 값을 삽입할 수 있습니다.
| 포맷 코드 | 설명 |
|---|---|
| %s | 문자열 (String) |
| %d | 정수 (Integer) |
| %f | 부동소수점 (Floating-point) |
| %c | 문자 1개 (Character) |
| %% | 기호 '%' 자체를 표시 |
주요 내장 메서드
파이썬의 문자열 객체는 데이터를 처리하기 위한 다양한 메서드를 제공합니다.
- upper() / lower(): 모든 문자를 대문자 또는 소문자로 변환합니다.
- strip(): 문자열 앞뒤의 공백이나 특정 문자를 제거합니다.
- split(sep): 구분자(sep)를 기준으로 문자열을 나누어 리스트로 반환합니다.
- join(iterable): 리스트 등의 요소를 특정 문자열로 연결하여 하나의 문자열로 만듭니다.
- replace(old, new): 특정 문자열을 찾아 다른 문자열로 교체합니다.
- find(sub) / index(sub): 특정 문자열의 위치를 찾습니다. find는 없으면 -1을 반환하고, index는 에러를 발생시킵니다.
- startswith(prefix) / endswith(suffix): 특정 문구로 시작하거나 끝나는지 확인합니다.
sample_text = " python programming "
# 공백 제거 및 대문자 변환
print(sample_text.strip().upper()) # "PYTHON PROGRAMMING"
# 문자열 치환
print(sample_text.replace("python", "java")) # " java programming "
# 리스트 결합
words = ["Apple", "Banana", "Cherry"]
print(", ".join(words)) # "Apple, Banana, Cherry"
문자열 검색 및 슬라이싱 상세
문자열 내부에서 특정 문자를 찾을 때 사용하는 메서드들의 특징은 다음과 같습니다.
| 구분 | 내용 |
|---|---|
| find() | 문자열이 존재하지 않으면 -1을 반환합니다. |
| index() | 문자열이 존재하지 않으면 ValueError가 발생합니다. |
| 중복 문자 | 동일한 문자가 여러 개일 경우 가장 처음 발견된(가장 작은 인덱스) 위치를 반환합니다. |
| rfind() / rindex() | 오른쪽에서부터 역방향으로 검색을 시작합니다. |