코딩이 즐겁다

[파이썬 기초] 문자열 인덱싱과 슬라이싱 (Indexing, Slicing) 갓벽 가이드 본문

Python

[파이썬 기초] 문자열 인덱싱과 슬라이싱 (Indexing, Slicing) 갓벽 가이드

코즐 2025. 1. 22. 17:00
반응형

 

문자열 인덱싱 (Indexing)과 슬라이싱 (Slicing)

파이썬(Python)의 문자열은 순서가 있는 시퀀스 자료형으로, 각 문자에 고유한 인덱스를 부여합니다. 이를 활용하면 문자열의 특정 문자를 가져오거나 문자열의 일부를 추출할 수 있습니다.



문자열 인덱싱 (Indexing)

타 언어에서는 문자열 인덱스 번호가 0부터 시작합니다. 하지만 파이썬에서는 독특하게도 0부터 시작하는 순차 인덱싱 처리도 가능하고, 역순 번호를 이용한 인덱싱도 가능합니다. 역순 인덱싱 사용시에는 항상 마지막 문자를 기준으로 -1부터 시작합니다.

문자열 "BAMBI"로 예시로 들어보겠습니다.

  B A M B I
양수 인덱스 0 1 2 3 4
음수 인덱스 -5 -4 -3 -2 -1
s = "BAMBI"

print(">> 순차 인덱스 0부터 시작")
print( s[0] )
print( s[1] )
print( s[2] )
print( s[3] )
print( s[4] )

print(">> 역순 인덱스 시작")
print( s[-5] )
print( s[-4] )
print( s[-3] )
print( s[-2] )
print( s[-1] )

print(">> 순차, 역순 인덱싱 문자 비교")
print( s[0] == s[-5] )
print( s[1] == s[-4] )
print( s[2] == s[-3] )
print( s[3] == s[-2] )
print( s[4] == s[-1] )

결과:

>> 순차 인덱스 0부터 시작
B
A
M
B
I
>> 역순 인덱스 시작
B
A
M
B
I
>> 순차, 역순 인덱싱 문자 비교
True
True
True
True
True

 

💡 범위를 벗어난 인덱스

인덱스가 문자열의 길이를 초과하면 IndexError가 발생합니다.

s = "Python"
print(s[10])  # IndexError: string index out of range

 

💡 문자열은 불변 (Immutable)

문자열은 변경 불가능(immutable) 자료형이므로, 특정 인덱스의 값을 직접 수정할 수 없습니다.

s = "Python"
s[0] = "J"  # TypeError: 'str' object does not support item assignment

 


 

문자열 슬라이싱 (Slicing)

문자열 인덱스 번호를 활용하여 한 문자 이상을 추출해 내는 방법입니다.

출력되는 문자열의 경우, 진행 방향에 따라 종료 인덱스 번호의 이전까지 출력 됩니다.

문자열 [start:stop:step]
start 추출하고자 하는 시작 문자의 인덱스 번호, 생략시 처음 번호 자동 지정
stop 추출하고자 하는 종료 문자의 인덱스 번호, 생략시 마지막 번호 자동 지정
step 인덱스 번호 증감값, (-) 마이너스 값 입력시 역순 출력 가능, 생략시 1씩 증가
s = "Bambi Info"

print(">> 순차 인덱스 슬라이싱")
print( s[0:4] )
print( s[:4] )
print( s[6:] )
print( s[::] )
print( s[::2] )

print(">> 역순 인덱스 슬라이싱")
print( s[-10:-6] )
print( s[:-6] )
print( s[-7:] )
print( s[:-6:2] )

print(">> 문자열 거꾸로 출력")
print( s[::-1] )
print( s[-6::-1] )
print( s[-6:-10:-1] )

결과:

>> 순차 인덱스 슬라이싱
Bamb
Bamb
Info
Bambi Info
BmiIf
>> 역순 인덱스 슬라이싱
Bamb
Bamb
bi Info
Bm
>> 문자열 거꾸로 출력
ofnI ibmaB
ibmaB
ibma

 

💡 범위를 벗어난 슬라이싱

슬라이싱에서 범위를 벗어난 인덱스는 오류를 발생시키지 않으며, 가능한 범위 내에서 결과를 반환합니다.

s = "Python"
print(s[2:100])  # 'thon' (2번 인덱스부터 끝까지)
print(s[-100:3])  # 'Pyt' (시작은 자동으로 첫 번째 문자로 설정)

 

💡 시작, 끝, 간격 생략

  • 슬라이싱에서는 시작, 끝, 간격 값을 생략할 수 있습니다.
    • [:]: 전체 문자열.
    • [::]: 전체 문자열을 기본 간격으로 선택.
    • [::n]: 간격만 지정.
s = "Python"
print(s[:])      # 'Python' (전체 문자열)
print(s[::])     # 'Python' (기본 간격으로 전체 문자열)
print(s[::-1])   # 'nohtyP' (역순 문자열)

 


 

코즐

파이썬을 배우고 싶은 사람은 누구나 파이썬 학원(국비 지원 파이썬 학원)에 가지 않고도 파이썬 공부를 하면서 실력을 쌓아나갈 수 있다고 생각합니다. 

파이썬 온라인 강의 자료를 올리면서 누구나 쉽게 파이썬을 공부하실 수 있도록 최선을 다해서 설명하도록 하겠습니다.

 


 

 

반응형