본문 바로가기

Language/Python

[Python] 문자열 자르기

문자열 자르기에 대해서 알아볼게요.

파이썬에서 문자열 자르기를 ‘슬라이싱(Slicing)’이라고 해요.

문자열의 일부분을 잘라서 사용할 수 있도록 해줘요.

그럼 왜 슬라이싱을 사용할까요?

예시 코드를 통해 알아볼게요.

 

hello_str = '안녕하세요. 저는 게으른 개발자입니다. 만나서 반갑습니다.'

# 예시 문장에서 '저는 게으른 개발자입니다.'만 출력하고 싶어요.
# 그럼 어떻게 해야할까요?
print(hello_str[7:21])
>> (출력) 저는 게으른 개발자입니다.

 

문자열의 7번째 단어부터 21번 전의 단어까지 화면에 출력하도록 구현해봤어요.

(물론 문자열의 첫 단어는 0번째라는거 기억하시죠?)

이처럼 특정 범위 내의 문자들을 출력할 때 사용되요.

 

예시 소스코드처럼 파이썬에서 슬라이싱(문자열 자르기)는 대괄호([])를 이용하는데요.

대괄호 안에 어떤 값이 들어갈까요?

 

[시작 인덱스 번호 : 끝 인덱스 번호 : 시작 인덱스에서 몇 씩 차이나게 출력할 것인지 작성]

 

hello_str       = '안녕하세요.  저는 게으른 개발자입니다.  만나서 반갑습니다.'
- index 번호 :                         7                                        21

 

hello_str[7:21]는 7번째 문자부터 21번 전의 문자(20번째)까지 출력해달라는 의미를 이해하셨죠?

그런데 마지막에 있는 시작 인덱스에서 몇 씩 차이나게 출력할 것인지 작성

무엇을 의미할까요?

 

먼저  파이썬에서 제공하는 슬라이싱의 기능이 다양한 작성 방법을 알아보고 그 뒤에 알려줄게요.

문자열 슬라이싱 기능이 신기하고 재미있어요. 

 

# '안녕하세요. 저는 게으른 개발자입니다.'를 먼저 출력해볼게요.
print(hello_str[:21])
>> (출력) 안녕하세요. 저는 게으른 개발자입니다.

# '만나서 반갑습니다.'를 출력해볼게요
print(hello_str[22:])
>> (출력) 만나서 반갑습니다.

# 이번에는 한 단어씩 건너띄면서 출력해볼게요.
print(hello_str[7:21:2])
>> (출력) 저 으 발입다

 

신기하죠? 저도 이 코드를 보고 신기했어요.

먼저 문자열 자르기에서 괄호 안에 숫자들의 의미를 알려줄게요.

 

의미들을 숙지했으면 소스코드를 다시 볼까요?

첫 번째 코드에서 시작 인덱스 번호가 없죠? 이럴 때에는 기본적으로 문자열 시작부터 21까지 출력해달라고 하는거에요.

 

두 번째 예시는 첫 번째와 반대 상황이네요.

앞에 설명과 마찬가지로 인덱스 번호 22번부터 끝까지 출력하는 코드에요.

 

마지막 예시에요. 드디어 시작 인덱스에서 몇 씩 차이나게 출력할 것인지 작성

무엇을 말하는지 알려줄게요.

마지막 예시는 7부터 21 이전의 문자열을 출력하는데, 다음 위치를 2만큼 옮긴 후 출력해달라는 의미에요.

인덱스 번호를 통해 학습하면 조금 더 이해하기 쉬울거에요.

 

문자     .
인덱스 7 8 9 10 11 12 13 14 15 16 17 18 19 20

 

문자열[7]부터 시작해서 [7+2], [7+2+2], [7+2+2+2]... 위치에 있는 '저  으  발입다' 라는 단어를 출력해줘요.

즉, 등차수열처럼 문자열을 출력해주는 것을 의미해요!

 

문자열 자르기의 다양한 방법을 꼭 알아두세요!

많이 사용하는 기능이에요.