본문 바로가기

Programming/Python Tutorials

[PYTHON 3] Tutorials 4. Slicing up Strings


안녕하세요. 이번에는 문자열(strings)을 slicing up 하는 것을 다뤄보겠습니다.

우선 터미널을 열고 파이썬 인터프리터를 구동시킵니다.

user 라는 변수에 문자열 "Barack Obama" 라고 하는 임의의 값을 할당해 주었습니다.

사람들은 숫자를 세어 보라고 하면 1부터 카운팅을 하지만,

컴퓨터는 0부터 카운팅을 합니다.

이는 비단 다른 컴퓨터 언어도 마찬가지이므로 기억해 두시면 좋겠습니다.

변수 user 의 첫번째 값이 뭔지 확인해 보려고 user[0] 을 입력하니 'B' 라고 알려주네요.

이번에는 user 안의 8번째(0부터 카운팅하니 8번째가 되겠죠?)값은 대문자 'O' 이네요.

물론 왼쪽부터 알아볼 수도 있지만, 오른쪽에서도 위의 그림처럼 slicing up 할 수 있습니다.

여기에서 오른쪽부터는 negative(-) 를 사용한다는 점과

오른쪽 끝지점은 0이 아니라 -1이라는 점만 주의하시면 되겠습니다.

왜냐하면, 컴퓨터는 사람에게 보여주지 않는 -0 지점에 null, 혹은 개행(줄바꿈) 과 같은 것이 있기 때문입니다.

그래서 오른쪽 첫번째는 'a' 가 있는 것을 확인시켜 주네요.

하나 더 오른쪽에서 2번째 값은 'm'인 것을 확인해 보았습니다.

그럼 범위로 설정하는 것도 가능하냐? 네 가능합니다.

위의 그림처럼 colon(:) 을 사용합니다.

주의할 점은, 2 이상 9 미만이라는 의미입니다.

즉 앞에 있는 숫자는 포함이고, 뒤의 숫자는 포함시키지 않는다는 점입니다.

여기에서는 0,1,2  <- 이므로 3번째인 'r' 부터

0,1,2,3,4,5,6,7,8 <- 까지인 'b' 까지

다시말해, 'rack Ob' 까지를 의미하는 것입니다.

만약 시작지점을 지정하지 않는다면?

위의 그림에서는 user[:9] 이렇게 지정한다는 것은 처음부터 9미만 이라는 의미입니다.

즉, 0,1,2,3,4,5,6,7,8 까지에 해당하는 값을 의미합니다.

앞의 예와 반대로 끝지점을 지정하지 않아도 가능합니다.

user[2:] 는 2,3,4,5,6,7,8,9,10~끝까지 입니다.

범위를 앞,뒤 다 생략도 가능합니다.

이 경우에는 user[:] 는 user 변수 전체값을 지칭하는 의미입니다.

또 하나 언급할 것은, 화면에 표시하기 위한 함수를 print() 를 사용한다고 일전에 올렸는데, 

위 그림처럼 사용하면 print 함수안의 문자열을 보여줍니다.

그런데, 이 문자열의 길이를 알고자 할 경우에는 len() 이라는 함수를 사용하면 됩니다.

여기서 len은 영어 length : 길이 를 뜻합니다.

위 그림처럼 len() 괄호안에 문자열을 넣으면 몇개의 문자가 있는지 알려 줍니다.

len() 함수에 처음에 지정한 user 변수를 넣으면 12자리가 있다는 것을 알려 주고 있습니다.

스페이스(빈칸)도 한 자리를 차지합니다.


strings slicing up 은 여기까지 입니다.