이번 시간엔 문자열을 조작하고 인덱스를 찾고, 슬라이싱 하는 방법에 대해 포스팅하도록 하겠습니다.
문자열 인덱스란, 문자의 길이가 몇 번째에 위치하는지를 뜻 합니다.특히 파이썬은 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: '세요. 반갑습니다.'
: 콜론을 사용하여 슬라이싱을 만들고 다양한 방법으로 응용할 수 있습니다.
다음 포스팅은 문자열 응용을 하여 문자를 변환하고 조작하는 방법을 실습하도록 하겠습니다.
'Python' 카테고리의 다른 글
[python] 문자열 조작, 문자열 추가, str, format, split 활용, 문자열 추출, 특정 문자 추가, 조건분리 (0) | 2022.06.24 |
---|---|
[python] replace 문자열 조작, 문자열 치환, 문자열 변경 (2) | 2022.06.22 |
[python] 데이터타입 확인(int, float, str...), 문자열, 비교연산자 연습 (0) | 2022.06.21 |
[Python] 기본 타입(숫자형, 정수형) / print 익히기 및 응용 / 파이썬 print (0) | 2022.06.21 |
[Python] 버전 확인, pandas(판다스) 설치하기, 라이브러리 설치 (0) | 2022.04.15 |