지난 포스트에서는 자료형과 문자열의 연결과 반복을 알아보았습니다.
https://ktw2408.tistory.com/33?category=950839
파이썬의 자료형과 문자열 part.1
자료형은 개발자들이 쉽게 사용할 수 있도록 기능과 역할에 따라 자료로 구분한 형태이며 파이썬에서 사용할 수 있는 자료형은 다음과 같습니다. bool int float complex str tuple list dict function 파이썬
ktw2408.tistory.com
이번에 알아볼 내용은 문자열 선택과 슬라이싱입니다.
먼저 문자열 선택 연산자에 대해 알아보겠습니다.

대괄호([ ])를 사용하여 문자열 내부의 문자 위치를 지정할 수 있습니다.
파이썬의 경우 리스트를 슬라이싱 할 때 인덱스가 시작하는 수는 포함하고 마지막 수는 배제한다고 합니다.
자세한 내용은 다음 블로그에 정리가 되어있으니 참고하시면 좋은 자료가 될것 같습니다.
0부터 시작하는 이유와 마지막 수를 인덱스로 포함하지 않는 이유
"Why numbering should start at zero" 1. 인덱스 넘버링 보통 프로그래밍 언어에는 자료구조로 사상되는 어떤 집합을 순회하면서 그 집합에서 꺼내온 원소를 가지고 정해진 연산을 차례대로 수행하기 위
nanite.tistory.com
다시 본론으로 돌아와서
문자 선택 연산자와 반대의 결과를 각각 출력해보겠습니다.


정방향 출력의 경우 0부터 시작하여 마지막 숫자의 위치까지 지정한대로 순서에 맞게 [안녕하세요]가 한문장씩 출력된다.
안 | 녕 | 하 | 세 | 요 |
[0] | [1] | [2] | [3] | [4] |
반대의 경우 0에서 가까운 음수가 맨 끝자리로 가게되고 0에서 먼 음수가 앞자리에 위치하므로 [요세하녕안] 순서로 출력 되었다.
요 | 세 | 하 | 녕 | 안 |
[-1] | [-2] | [-3] | [-4] | [-5] |
다음으로 슬라이싱에 대해 알아봅시다.
슬라이싱의 기호는 [:]를 사용하며 문자열의 특정 범위를 선택 할 때 사용합니다.

다음 예시에는 문자열 "1주일버티기"와 [1:4]슬라이싱 범위가 있습니다. 먼저 제로 인덱스형으로 표현하였습니다.
1 | 주 | 일 | 버 | 티 | 기 |
[0] | [1] | [2] | [3] | [4] | [5] |
슬라이싱 범위가 [1:4]까지 지정되었습니다. 위 표에서 보면 [1:4]까지의 범위는 [주일버티]가 되는데요.
과연 결과는 어떨까요?

출력 결과 [주일버티]가 아닌 [주일버]가 출력 되었습니다.
왜 [주일버]가 출력 되었을까요?
앞서 말씀드린 것 처럼 파이썬은 마지막 숫자를 포함하지 않기 때문입니다.
따라서 [주일버]가 출력 된것입니다.

다음 예시와 같이 범위가 [2:], [:3]으로 지정된 문자열의 출력은 어떻게 될까요?
출력에 앞서 이를 표로 나타내봅시다.
1 | 주 | 일 | 보 | 내 | 기 |
[0] | [1] | [2] | [3] | [4] | [5] |
1주일보내기의 범위는 [2:]입니다.
1 | 주 | 일 | 계 | 획 | 하 | 기 |
[0] | [1] | [2] | [3] | [4] | [5] | [6] |
1주일계획하기의 범위는 [:3]입니다.

먼저 [1주일보내기] 문자열은 2번째 순서부터 마지막 순서까지 범위를 나타내므로 [일보내기]가 출력되고,
[1주일계획하기]는 3번째 까지의 범위를 나타내므로 "계'를 제외한 [1주일]이 출력 됩니다.
마지막으로 len() 함수에 대해 알아봅시다.
len()은 문자열의 길이를 뜻하며 괄호 안에 있는 문자의 개수를 세어줍니다.

예시로 다음과 같이 작성해봅시다.
결과를 확인해보면 문자의 개수가 17이라는 것을 확인 할 수 있습니다.

문자열을 표로 나누어 보았습니다.
9 | 시 | 출 | 근 | 시 | 간 | , | ||
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
1 | 8 | 시 | 퇴 | 근 | 시 | 간 | ||
9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
문자열 중간에 공백과 쉼표도 포함되기 때문에 17이 맞습니다.
이상으로 문자열 part.2 포스팅을 마무리 합니다.