Python 강좌 / 문자열 다루기: 인덱싱·슬라이싱·메서드·f-string
문자열은 순서가 있는 텍스트 자료형이며 인덱싱과 슬라이싱으로 일부를 읽을 수 있습니다. 문자열 자체는 변경할 수 없으므로 strip·replace 같은 메서드의 결과를 새 값으로 받아야 합니다.
문자열의 위치와 범위
첫 글자의 인덱스는 0이고 음수 인덱스 -1은 마지막 항목입니다. 슬라이스 text[start:stop]은 stop 직전까지 선택합니다. 범위를 넘어선 단일 인덱스는 오류지만 슬라이스는 가능한 부분을 반환합니다. Python 문자열의 길이는 바이트 수가 아니며, 여러 코드 포인트로 이루어진 결합 문자나 이모지가 화면에서 한 글자처럼 보일 수 있습니다.
관련 동작과 지원 조건은 문자열 다루기: 인덱싱·슬라이싱·메서드·f-string 관련 공식 문서에서 확인할 수 있습니다.
text = "Python" print(text[0], text[-1], text[1:4])
결과는 P n yth입니다. 시작과 끝의 포함 조건을 먼저 확인하면 한 글자씩 어긋나는 오류를 줄일 수 있습니다.
전체 예제와 실행 결과
별도의 실습 폴더에서 아래 파일을 UTF-8로 저장합니다. 가상환경을 선택한 터미널에서 python strings.py 명령으로 실행합니다. macOS·Ubuntu에서 가상환경을 사용하지 않는 경우 명령 이름을 python3으로 바꿉니다.
strings.py 파일의 전체 내용입니다.
raw = " lunch,8000 "
clean = raw.strip()
name, amount_text = clean.split(",")
amount = int(amount_text)
print(clean)
print(name.upper())
print(f"{name}: {amount:,} KRW")
print("-".join(["2026", "10", "17"]))
예상 결과는 다음과 같습니다.
lunch,8000 LUNCH lunch: 8,000 KRW 2026-10-17
분리·연결·형식 지정 선택하기
split은 문자열을 구분자로 나눠 리스트를 만들고 join은 문자열들의 모음을 하나로 연결합니다. join의 각 항목은 문자열이어야 하므로 숫자는 먼저 변환합니다. CSV의 따옴표와 쉼표를 정확히 처리해야 한다면 단순 split 대신 csv 모듈을 사용합니다.
f-string은 값을 출력할 때 편리하지만 외부 입력을 SQL 문자열에 끼워 넣는 용도로 쓰면 안 됩니다. 사람이 보는 문장 만들기와 데이터베이스 매개변수 전달은 다른 작업입니다.
바뀌지 않는 원본과 오류 확인
raw.strip()만 호출하고 반환값을 사용하지 않으면 raw는 그대로입니다. replace도 마찬가지입니다. 원본을 유지하려면 raw와 clean처럼 역할을 나눈 이름을 쓰고, 새 값으로 바꾸려면 대입을 명시합니다.
- raw에 앞뒤 공백을 더 넣어도 clean이 같은지 확인합니다.
- 쉼표를 제거하면 두 값으로 언패킹할 수 없는 오류가 생깁니다. 데이터를 원래대로 되돌립니다.
- 첫 항목을 text[0]에 대입하려고 하면 변경 불가능한 문자열이라는 이유로 TypeError가 발생합니다.








