파이썬 문법

파이썬에서 문자열 인덱싱 2.

mdesign 2024. 8. 19. 12:08

파이썬에서 문자열은 문자(character)들의 순서가 있는 시퀀스(Sequence)로, 각 문자에는 0부터 시작하는 고유한 인덱스가 할당됩니다. 이를 통해 문자열의 특정 위치에 있는 문자에 접근할 수 있습니다.

1. 기본 인덱싱 (Positive Indexing)


문자열에서 인덱스는 0부터 시작합니다. 예를 들어, 문자열 `"Python"`에서 각 문자의 인덱스는 다음과 같습니다:


- `s = "Python"`
- `s[0]`은 `"P"`를 반환합니다.
- `s[1]`은 `"y"`를 반환합니다.
- `s[5]`은 `"n"`을 반환합니다.

s = "Python"
print(s[0])  # Output: P
print(s[1])  # Output: y
print(s[5])  # Output: n

 

2. 역방향 인덱싱 (Negative Indexing)


파이썬에서는 문자열의 뒤에서부터 접근하기 위해 음수 인덱스를 사용할 수 있습니다. 인덱스 `-1`은 마지막 문자, `-2`는 뒤에서 두 번째 문자, 이런 식으로 접근할 수 있습니다.


- `s[-1]`은 `"n"`을 반환합니다.
- `s[-2]`은 `"o"`를 반환합니다.
- `s[-6]`은 `"P"`를 반환합니다.

s = "Python"
print(s[-1])  # Output: n
print(s[-2])  # Output: o
print(s[-6])  # Output: P

 

3. 문자열 슬라이싱 (String Slicing


인덱스를 사용하여 문자열의 일부를 추출할 수 있습니다. 슬라이싱의 기본 문법은 `[start:end]`이며, `start` 인덱스부터 `end` 인덱스 바로 앞까지의 문자를 반환합니다. 예를 들어, `"Python"`에서 `"Pyt"` 부분을 추출하려면:

s = "Python"
print(s[0:3])  # Output: Pyt


- `s[0:3]`은 `"Pyt"`을 반환합니다.
- `s[2:5]`은 `"tho"`을 반환합니다.
- `s[:4]`은 `"Pyth"`을 반환합니다.
- `s[2:]`은 `"thon"`을 반환합니다.

슬라이싱에서 `start`나 `end`를 생략하면, 문자열의 처음이나 끝까지를 의미합니다.

4. 스텝 (Step) 사용하기

슬라이싱 문법 `[start:end:step]`에서 `step`을 추가로 지정할 수 있습니다. `step`은 문자를 몇 칸씩 건너뛰며 가져올지를 결정합니다.

s = "Python"
print(s[0:6:2])  # Output: Pto


- `s[::2]`는 `"Pto"`을 반환합니다. (2칸씩 건너뛰며 추출)
- `s[::-1]`는 `"nohtyP"`을 반환합니다. (역순으로 문자열을 반환)


5. 문자열은 불변 (Immutable)

파이썬에서 문자열은 불변(Immutable)입니다. 이는 한 번 생성된 문자열은 수정할 수 없음을 의미합니다. 예를 들어, 인덱싱을 통해 개별 문자를 변경하려고 하면 오류가 발생합니다.

s = "Python"
# s[0] = "J"  # 오류 발생: 문자열은 불변이므로 수정할 수 없음 


# 대신, 새로운 문자열을 생성해야 합니다.
s = "J" + s[1:]
print(s)  # Output: Jython
 6. 인덱스 범위 벗어남 (IndexError)



만약 문자열의 길이를 초과하는 인덱스로 접근하려고 하면 `IndexError`가 발생합니다.

s = "Python"
# print(s[10])  # IndexError: 문자열 범위를 벗어남



 요약


- 양수 인덱스**로는 문자열의 앞쪽에서부터 접근.
- 음수 인덱스**로는 문자열의 뒤쪽에서부터 접근.
- 슬라이싱**으로 문자열의 일부를 추출.
- 문자열은 **불변**이라 수정할 수 없으며, 새로운 문자열을 만들어야 함.

이러한 인덱싱 및 슬라이싱 기능을 통해 문자열 내에서 필요한 부분에 쉽게 접근하고 조작할 수 있습니다.