Python

[python] 문자열조작, 문자열 인덱스, 문자열 찾기, 문자열 슬라이싱

도히츄 2022. 6. 22. 11:33

이번 시간엔 문자열을 조작하고 인덱스를 찾고, 슬라이싱 하는 방법에 대해 포스팅하도록 하겠습니다.

문자열 인덱스란, 문자의 길이가 몇 번째에 위치하는지를 뜻 합니다.특히 파이썬은 0부터 시작한다는 것을 꼭 생각하셔야 합니다.예를 들어 '안녕하세요' 라는 문자열이 있으면 0 1 2 3 4 => 총 4번째까지의 인덱스가 있다고 볼 수 있습니다.이제 본격적인 실습을 들어가도록 하겠습니다.

 


1. 인덱스 찾기

 

 

a 를 선언해주도록 하겠습니다.

 

a = '안녕하세요. 반갑습니다.'

 

이제 a에는 '안녕하세요. 반갑습니다.'라는 문자열이 들어갔습니다. 이제 인덱스를 찾아보도록 하겠습니다.

 

a = '안녕하세요. 반갑습니다.'

in: a[0] # 0번째 인덱스를 찾아줘
Out: '안'

in: a[5] # 5번째 인덱스를 찾아줘
Out: '.'

in: a[8] # 8번째 인덱스를 찾아줘
Out: '갑'

 

[] 대괄호 안에 찾고자하는 인덱스 번호를 입력하면 해당되는 문자가 반환됩니다.

앞장에서 익혔던 print 함수를 써서도 출력할 수 있습니다.

 

a = '안녕하세요. 반갑습니다.'

in: print(a[0])
>> 안

in: print(a[5])
>> .

in: print(a[8])
>> 갑

 

print 함수를 쓰지 않을 때는 out이 보이지만, print 함수를 활용하면 단순히 출력만되고 있습니다.

 


2. - 인덱스 찾기

 

파이썬에서는 -인 음수 인덱스도 지원해주고 있습니다. 음수 인덱스란 마지막을 기준으로 하게 됩니다. 

말이 어려우니 실습으로 진행하도록 하겠습니다.

a = '안녕하세요. 반갑습니다.'

in: a[-1] # 뒤에서 1번째
Out: '.'

in: a[-2] # 뒤에서 2번째
Out: '다'

in: a[-5] # 뒤에서 5번째
Out: '갑'

in: print(a[-1]) # 뒤에서 1번째
>> .

in: print(a[-2]) # 뒤에서 2번째
>> 다

in: print(a[-5]) # 뒤에서 5번째
>> 갑

 

이렇게 음수인덱스를 사용하면 뒤에서부터 몇 번째의 인덱스를 찾을 수 있습니다.

여기서 유의해야할 점은 인덱스 번호가 넘어가면 에러가 발생한다는 것 입니다. 에러코드 보도록 하겠습니다.

 

a = '안녕하세요. 반갑습니다.'

in: a[15] # 15번째 인덱스 찾아줘
Traceback (most recent call last):

  File "C:\Users\dohee\AppData\Local\Temp/ipykernel_16396/1253830251.py", line 1, in <module>
    a[15]

IndexError: string index out of range

IndexError: string index out of range 에러가 발생하였는데, 이것은 문자열 인덱스 길이를 넘었다. 라는 뜻 입니다.

따라서 인덱스를 출력, 확인할때는 인덱스가 넘어가지 않게 숫자값을 입력해야 합니다.

음수인덱스도 동일합니다.

 


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

 

이제 문자열 슬라이싱을 익히도록 하겠습니다. 문자열 슬라이싱이란, 문자의 시작과 끝을 출력하는 것 입니다.

위에선 "몇 번째"를 지정해주었지만, 문자열 슬라이싱에서는 "몇 번째부터 몇 번째까지" 가져오는 것을 의미합니다.

코드를 통해 실습하도록 하겠습니다.

 

a = '안녕하세요. 반갑습니다.'

in: a[0:5] # 0번째부터 5번째까지
Out: '안녕하세요'

in: a[0:6] # 0번째부터 6번째까지
Out: '안녕하세요.'

in: a[5:8] # 5번째부터 8번째까지
Out: '. 반'

in: a[4:-7] # 4번째부터 뒤에서 7번째까지
Out: '요.'

in: a[:3] # 맨 앞에서부터 3번째까지
Out: '안녕하'

in: a[3:] # 맨 뒤 3번째 전까지
Out: '세요. 반갑습니다.'

: 콜론을 사용하여 슬라이싱을 만들고 다양한 방법으로 응용할 수 있습니다.


 

다음 포스팅은 문자열 응용을 하여 문자를 변환하고 조작하는 방법을 실습하도록 하겠습니다.