관리 메뉴

심리이모저모

파이썬(Python) 공부하자 - 02 문자열(string) 본문

IT 공부하자!/Python

파이썬(Python) 공부하자 - 02 문자열(string)

교육심리학자 2018. 1. 12. 14:07
728x90


1. 파이썬(Python) 공부하자 - 문자열(string)


파이썬(Python) 공부하자 - 문자열 시간입니다. 이 전에 써 드른 Anaconda의 사용법과 변수에 대해서 잘 익히셨나요? 혹시 기억이 잘 안 나시는 분들은 파이썬 공부하자 01. Anaconda 사용과 변수(http://allpsychology.tistory.com/30) 이전 글을 참고해 주세요~^^ 저번 시간 변수를 이용해 특정 정수 값을 가리키는 것(바인딩)에 대해 배웠습니다. 이번 시간에는 변수로 문자열을 가리키는 것에 대해 알아보도록 합시다!


프로그램밍에서는 'x', 'y', 'z'와 같은 알파벳 하나하나를 '문자(character)'라고 부릅니다. 따라서 '문자'들이 한 묶음으로 줄 서 있는 'program'과 같은 단어, 문장은 '문자열(string)'이라고 합니다. 즉 둘 이상의 문자로 구성된 데이터를 문자열이라고 하는 것이죠. 


여기서 파이썬(Python)의 독특한 점 하나를 소개해 드리겠습니다. 파이썬에서는 '문자(char)'와 '문자열(string)'을 구별하지 않습니다. 작은따옴표('')나, 큰다옴표("")로 묶인 문자모음을 모두 문자열이라고 부르죠. 


그렇다면 변수에 저장은 어떻게 해야 될까요? 눈치 빠른 여러분은 이미 다 예상하셨을 것 같은데요. 다음과 같이 "(원하는 변수) = (문자열)"처럼 쓰면 됩니다. 




2. 파이썬(Python) 공부하자 - 문자열(String)


자 여기서 '한글은 안되나요?'라고 질문 하실 것 같은데요. 당영히 됩니다. 

아래처럼 쓰시면 됩니다. "안녕하세요. 알쓸신잡입니다."를 입력해 볼까요? 



3. 파이썬(Python) 공부하자 - 문자열(String)


1강에서 했던 것처럼 데이터를 저장한 변수이기 때문에 화면에 값을 출력하는 print 함수를 써서 출력하는 것도 가능하죠!!!

아래처럼 말이죠!!^^



3. 파이썬(Python) 공부하자 - 문자열 인덱싱(Indexing) 및 슬라이싱(Slicing)


파이썬(Python)은 다른 프로그램밍 언어들에 비해서 문자열을 매우 쉽게 다룰 수 있는데요. 먼저 "알쓸신잡입니다."라는 문자열이 총 몇 글자인지 알아봅시다. (마침표가 문자열에 포함되어 있습니다!)



4. 파이썬(Python) 공부하자 - 문자열 인덱싱(Indexing) 및 슬라이싱(Slicing)


위 처럼 타이핑을 하고 실행을 하게 되면 '8'이 나옵니다. 참고로 len() 함수는 length의 줄임말입니다. 그런데 왜 '7'이 아닌 '8'이 나올까요? 이는 문장부호인 마침표(.)하나의 문자로 간주하기 때문입니다. 똑같은 원리로 느낌표(!), 물음표(?) 등도 하나의 문자로 간주하고 '공백( )'도 한 글자로 인식합니다. 


5. 파이썬(Python) 공부하자 - 문자열 인덱싱(Indexing) 및 슬라이싱(Slicing)


"알쓸신잡입니다."라는 문자열에서 '알쓸신잡'이라는 글자만 구하고 싶다면 어떻게 해야 할까요? 여기서 파이썬은 슬라이싱(Slicing)'이라는 기능을 제공합니다. 문자열 중에서 가져오고 싶은 부분을 지정할 수 있습니다. 위 코드를 보면 " [0:4] "라는 특이한 녀석이 보이는데요. 문자열 변수 뒤에 붙은 [  ]는 슬라이싱 할 범위를 지정할 때 사용하는 기호입니다. 0은 시작위치, 4는 끝 위치를 의미하죠. ㅣ작과 끝을 구분하기 위해서 콜론(:)을 사용합니다. 얼추 이해하셨을 것이라 생각합니다. 그런데 "시작이 0이라고?"라는 의문을 느끼시는 분들이 있는 것 같네요. ^^



5. 파이썬(Python) 공부하자 - 문자열 인덱싱(Indexing) 및 슬라이싱(Slicing)


여러분이 1번째라고 생각한 '알'은 컴퓨터에게는 0번째입니다. 마지막 문자 8번째라고 생각한 '.'은 컴퓨터에게는 7번째인 것입니다. 근데 색깔도 일부러 다르게 표시하고 마지막에 붙여놓은 8번째 문자는 무엇일까요? 컴퓨터가 데이터를 저장할 때는 데이터의 길이 정보를 알고 있어야 됩니다. 하지만 길이 정보를 문자열의 앞 또는 뒤에 추가하는 것은 오히려 더 헷갈리는 방법이 될 수 있기 땜누에 문자열이 끝나는 부분 맨 마지막에 아무것도 아님을 뜻하는 NULL을 추가하는 방법을 선택했습니다. 그럼 이번에는 '입니다.'만 가져와 볼까요? 



근데 이 방법은 글자 수를 다 세야하기 때문에 조금 귀찮습니다.

프로그램머는 일을 더 편하게 하는 거을 좋아하기 때문에 이를 보완할 방법을 소개해 드리겠습니다. 



위 방법을 반대로 적용하면 시작 값을 생략할 수 있죠. 



또 인덱스는 양수만 가능한 것이 아닙니다. 음수도 가능하죠. 



Comments