파이썬 기초 완성형 시리즈 · 03장
문자열 · 텍스트 처리 · 인덱싱 · 슬라이싱 · 연산
문자열 심화 및 연산편
문자를 다루는 감각부터 연결, 자르기, 찾기까지 한 번에 익히기
이 장에서는 파이썬에서 가장 자주 다루게 되는 자료형 중 하나인 문자열을 깊게 다룹니다. 문자열이 단순한 글자 묶음이 아니라, 연결하고, 반복하고, 위치로 꺼내고, 잘라서 가공할 수 있는 데이터라는 점을 실제 예제 중심으로 익히는 것이 목표입니다.
이 장에서 배우는 것
- 문자열의 기본 성격과 생성 방법
- 문자열 연결, 반복, 길이 확인 같은 기본 연산
- 인덱싱과 슬라이싱으로 원하는 부분 꺼내기
- 자주 쓰는 문자열 메서드와 검색 방법
- 초보자가 자주 틀리는 문자열 관련 실수 정리
이 장을 끝내면
- 문자열끼리 더하기와 곱하기가 왜 가능한지 설명할 수 있습니다.
- 문자 하나와 문자열 일부를 위치로 꺼낼 수 있습니다.
- 문장 안에서 특정 단어를 찾고 바꾸는 기초 작업을 할 수 있습니다.
- 다음 장의 리스트/컬렉션 학습 전 텍스트 처리 감각을 갖추게 됩니다.
1
문자열은 왜 중요한가
프로그래밍에서 숫자만 다루는 일은 거의 없습니다. 사용자 이름, 이메일, 주소, 상품명, 메시지, 파일명, 날짜 표현, 로그 기록처럼 실제 프로그램은 문자 데이터를 매우 자주 처리합니다. 그래서 문자열은 입문 단계에서 가볍게 지나갈 수 있는 주제가 아니라, 거의 모든 프로그램의 기본 재료라고 볼 수 있습니다.
문자열을 제대로 이해하면 단순히 글자를 저장하는 수준을 넘어, 문장을 이어 붙이고, 필요한 부분만 잘라 내고, 특정 단어를 찾고, 형식을 맞춰 출력하는 작업까지 할 수 있습니다. 즉 문자열 학습은 텍스트를 읽고, 고치고, 다시 조립하는 능력을 기르는 과정입니다.
문자열을 만드는 가장 기본적인 방법
문자열은 작은따옴표나 큰따옴표로 감싸서 만듭니다. 파이썬은 두 방법을 모두 허용합니다. 중요한 것은 문자 데이터라는 사실을 분명히 알려 주는 것입니다.
text1 = "파이썬"
text2 = '문자열'
print(text1)
print(text2)
둘 중 어느 방식을 쓰든 상관없지만, 한 코드 안에서는 가능한 한 일정한 스타일을 유지하면 읽기 쉬워집니다.
바로 기억할 핵심
따옴표가 있으면
문자열일 가능성이 높습니다.
숫자처럼 보여도
따옴표 안에 있으면 문자열입니다.
문자열은
연산과 가공이 가능한 데이터입니다.
문자열 연산의 핵심: 더하기와 곱하기
1) 문자열 더하기
first = "파이썬"
second = "공부"
print(first + second)
문자열의 +는 숫자 덧셈이 아니라 문자를 이어 붙이는 연산입니다. 결과는 파이썬공부가 됩니다.
2) 문자열 곱하기
print("ha" * 3)
print("=" * 10)
문자열의 *는 반복입니다. 같은 문자열을 여러 번 출력해야 할 때 매우 유용합니다.
정리하면 숫자의 +는 계산, 문자열의 +는 연결입니다. 숫자의 *는 곱셈, 문자열의 *는 반복입니다.
문자열 길이 구하기
text = "python"
print(len(text))
문자열의 길이는 len() 함수로 구할 수 있습니다. 글자 수를 기준으로 데이터를 검사하거나 제한할 때 자주 씁니다.
문자열 안에 문자열이 있는지 확인
text = "파이썬 공부는 재미있다"
print("공부" in text)
print("자바" in text)
in 연산자는 특정 단어가 포함되어 있는지 확인할 때 매우 직관적입니다. 검색, 필터링, 조건문에서 자주 사용됩니다.
인덱싱: 글자의 위치로 꺼내기
문자열은 여러 글자가 순서대로 모인 데이터입니다. 그래서 각 글자에는 위치 번호가 붙습니다. 이 번호를 이용해 특정 위치의 글자를 꺼내는 것이 인덱싱입니다. 파이썬의 위치 번호는 0부터 시작합니다.
0
1
2
3
4
5
p
y
t
h
o
n
word = "python"
print(word[0])
print(word[3])
print(word[-1])
앞에서 세면 0부터 시작하고, 뒤에서 세면 -1부터 시작합니다. 그래서 word[-1]은 마지막 글자를 뜻합니다.
슬라이싱: 필요한 구간만 잘라내기
문자 하나만 꺼내는 것이 아니라, 일정 구간을 잘라내고 싶을 때는 슬라이싱을 사용합니다. 기본 형태는 문자열[시작:끝]입니다. 여기서 끝 위치는 포함되지 않는다는 점이 매우 중요합니다.
word = "python"
print(word[0:2]) # py
print(word[2:5]) # tho
word = "python"
print(word[:3]) # pyt
print(word[3:]) # hon
print(word[:]) # python
슬라이싱은 파일명 앞부분 추출, 주민번호 일부 가리기, 날짜 문자열 자르기, URL 일부 분석 등 실전에서 매우 자주 쓰입니다.
이스케이프 문자
print("첫째 줄\n둘째 줄")
print("\"파이썬\"은 재미있다")
줄바꿈을 넣거나 따옴표를 문자열 안에서 표현하려면 이스케이프 문자를 사용합니다. 대표적으로 \n은 줄바꿈, \"는 큰따옴표 출력에 쓰입니다.
여러 줄 문자열
message = """안녕하세요.
파이썬 문자열은
여러 줄도 표현할 수 있습니다."""
print(message)
긴 설명문, 안내 메시지, 템플릿처럼 줄이 많은 문자열은 큰따옴표 세 개 또는 작은따옴표 세 개를 사용하면 편합니다.
자주 쓰는 문자열 메서드
대소문자 바꾸기
text = "Python"
print(text.upper())
print(text.lower())
공백 제거
text = " python "
print(text.strip())
문자열 바꾸기
text = "파이썬은 쉽다"
print(text.replace("쉽다", "강력하다"))
나누기와 합치기
text = "사과,바나나,포도"
items = text.split(",")
print(items)
print("-".join(items))
문자열 메서드는 텍스트 전처리의 핵심입니다. 데이터를 실제로 다루기 시작하면 strip, replace, split, join은 매우 자주 등장합니다.
find와 count
text = "banana"
print(text.find("na"))
print(text.count("a"))
찾고 싶은 위치를 알고 싶으면 find(), 몇 번 나오는지 알고 싶으면 count()를 씁니다.
포함 여부와 위치 검색의 차이
"공부" in text → 있는지 없는지 True/False로 확인
text.find("공부") → 몇 번째 위치인지 숫자로 확인
둘은 비슷해 보여도 목적이 다릅니다. 조건 분기라면 in이 더 직관적이고, 위치 계산이 필요하면 find()가 유용합니다.
초보자가 자주 하는 문자열 실수
실수 1. 숫자와 문자열을 바로 더하려고 함
age = 20
print("나이: " + age)
문자열과 숫자는 자료형이 달라 바로 연결되지 않습니다. 이때는 형변환이 필요합니다.
수정 예시
age = 20
print("나이: " + str(age))
print(f"나이: {age}")
처음에는 str()로 고치는 방법을 익히고, 나중에는 f-string을 자주 쓰게 됩니다.
실수 2. 인덱스 범위를 넘김
word = "cat"
print(word[3])
문자열 cat의 인덱스는 0, 1, 2까지만 있습니다. 3은 범위를 벗어납니다.
실수 3. 슬라이싱 끝 번호를 포함한다고 착각
word = "python"
print(word[0:2])
결과는 py이며, 2번 위치의 글자 t는 포함되지 않습니다. 슬라이싱의 끝은 제외된다는 규칙을 꼭 기억해야 합니다.
짧은 종합 예제: 문자열을 읽고 가공하기
message = " python programming "
print(message.strip()) # 앞뒤 공백 제거
print(message.upper()) # 대문자 변환
print(message[2:8]) # 일부 자르기
print("python" in message) # 포함 여부 확인
print(message.replace("python", "Py"))
이 짧은 예제 하나만 봐도 문자열은 단순 저장이 아니라 정리하고, 변환하고, 자르고, 찾는 작업의 중심에 있다는 것을 알 수 있습니다. 텍스트 데이터를 다루는 프로그램은 대부분 이런 흐름을 반복합니다.
한눈에 보는 문자열 작업 흐름
STEP 1
저장
문자열을 변수에 담습니다.
STEP 2
검사
길이와 포함 여부를 확인합니다.
STEP 3
추출
인덱싱과 슬라이싱으로 일부를 꺼냅니다.
STEP 4
변환
대소문자 변경, 치환, 공백 제거를 합니다.
STEP 5
재조립
split과 join 등으로 다시 조합합니다.
이 장의 핵심 요약
문자열은 단순한 글자 저장이 아니라 가공 가능한 데이터입니다.
문자열의 + 는 연결, * 는 반복이라는 점을 기억해야 합니다.
인덱싱은 한 글자, 슬라이싱은 구간 추출에 사용합니다.
strip, replace, split, join, find 같은 메서드는 문자열 처리의 핵심 도구입니다.
체크리스트
□ 문자열 더하기와 숫자 더하기의 차이를 설명할 수 있다.
□ 인덱싱에서 0부터 시작한다는 점을 기억한다.
□ 슬라이싱의 끝 위치는 포함되지 않는다는 점을 이해했다.
□ strip, replace, split, join 중 적어도 두 개 이상을 직접 써 볼 수 있다.
미니 연습문제
- 자신의 이름을 문자열 변수에 저장하고, 이름을 3번 반복해서 출력해 보세요.
- 문자열 "programming"에서 앞 4글자와 뒤 3글자를 각각 슬라이싱으로 꺼내 보세요.
- 문자열 " apple,banana,grape "에서 공백을 제거한 뒤 쉼표 기준으로 나눠 보세요.
Next Chapter
04장에서는 여러 값을 한 번에 담는 리스트와 컬렉션 자료형으로 넘어가, 데이터를 묶고 순서대로 다루는 방법을 배우게 됩니다.
지금까지는 문자를 다뤘다면, 다음 장부터는 여러 값을 구조적으로 다루는 감각을 키우게 됩니다.
'학습 자료 글 > 파이썬 시작하기' 카테고리의 다른 글
| [파이썬 기초 시리즈 6]불 자료형과 조건문 기초편 (0) | 2026.03.23 |
|---|---|
| [파이썬 기초 시리즈 5]딕셔너리 · 집합 · 키와 값 · 중복 제거 · 검색과 집합 연산 (0) | 2026.03.23 |
| [파이썬 기초 시리즈 4]리스트와 튜플 기초편 (0) | 2026.03.23 |
| [파이썬 기초 시리즈 2]. 변수와 자료형 기초편 (0) | 2026.03.23 |
| [파이썬 기초 시리즈 1]파이썬 학습 시작 가이드 (0) | 2026.03.23 |