본문 바로가기
Python/왕초보를 위한 파이썬

4.1. 자료형

by 가므자 2012. 4. 3.

여러분 이진수에 대해서 알고 계시지요? 아마 중학교 때 배웠던 것 같네요. 아직 배우지 않은 분은 그런 것이 있다는 것만 알고 계시구요. 컴퓨터에서는 이진수가 중요합니다. 왜냐하면 컴퓨터 내부에서는 모든 정보를 이진수로 처리하기 때문이죠. 예를 들어서 65라는 숫자를 컴퓨터 내부에서는 이진수 01000001로 처리합니다. 우리가 65 + 30 이라고 명령을 내리면 컴퓨터는 그것들을 모두 이진수로 바꿔서 계산을 한 다음에 그 결과를 다시 우리가 쓰는 십진수로 바꿔주는 거죠. 컴퓨터는 숫자 뿐만 아니라 문자라든지, 제 아무리 복잡한 정보도 모두 2진수로 처리한답니다.

컴퓨터에서 영어를 사용하기 위해서는 알파벳 한 자 한 자마다 숫자로 번호를 매겨서 처리를 하지요. 알파벳에 번호를 붙이는 규칙 중에서 가장 널리 쓰이는 것은 ASCII(아스키)라는 규약입니다. 아스키에서는 알파벳 A를 숫자 65로 표현하는데요, 어차피 숫자 65는 다시 이진수로 바꿔서 처리하겠죠?

그렇다면 여기서 이상한 점이 생깁니다. 이진수 01000001 이 있는데 컴퓨터는 이것이 숫자 65인지, 아니면 문자 A인지 어떻게 알 수 있을까요?

너무 어렵게 생각하실 건 없답니다.

숫자인지 문자인지 표시를 해주면 되는 거죠. 사람이 해주든지, 컴퓨터가 알아서 하든지 말입니다.

그렇게 표시를 해주는 것이 바로 자료형이라고 할 수 있습니다.

지금까지 우리가 자료형에 대해서 잘 몰라도 프로그램을 짤 수 있었던 것은 우리가 자료를 만들 때마다 파이썬에서 자동으로 자료형을 정해주었기 때문인데요, 다른 프로그래밍 언어에서는 프로그래머가 직접 정해주어야 하는 경우도 있습니다. 그리고 프로그래밍 언어마다 제공해주는 자료형에 차이가 있지요.

그렇다면 파이썬에는 어떤 자료형이 있는지 살펴볼까요? type 함수를 사용하면 자료형을 쉽게 알아 볼 수 있습니다.

>>> type('A')                    # 문자열
<type 'str'>
>>> type(6)                      # 정수
<type 'int'>
>>> type(2.8)                    # 소수
<type 'float'>
>>> type(3+4j)                   # 복소수
<type 'complex'>
>>> type([1, 2, 3, 4])           # 목록
<type 'list'>

네 번째는 복소수라는 자료형인데요, 고등학교 가면 배우지요. 복소수라는 자료형은 파이썬에서 처음 보았습니다. 물론, 리스트나 앞으로 배울 튜플, 사전도 그렇구요.

자료형에는 크게 나눠서 수치형(numbers), 순서형(sequence), 매핑형(mapping)이 있습니다. 수치형에는 다시 정수(int), 더 큰 정수(long int), 소수(float)가 있지요.

int 형은 32 비트로 –2147483648 에서 2147483647 까지의 숫자를 표현 할 수 있다고 합니다. 비트라는 것은 이진수의 자릿수 하나라고 대충 생각하고 넘어 가십시당… 오늘은 복잡한 게 왜 이리 많징…ㅜㅜ int 형이 32 비트라는 건 다른 프로그래밍 언어에 비해서 훨씬 큰 범위입니다. C의 long 형과 같다고 하네요. 정확한 범위는 아직까지 신경 쓰실 필요가 없습니다.

long int형은 표현 범위가 무제한이라고 합니다. 믿거나 말거나…^^ 3L과 같이 숫자 뒤에 L을 붙이면 됩니다.

float는 원래 부동소수점을 의미하는데, 소수점 이하를 표현할 수 있는 수라고 생각하시면 되겠네요.

그 다음으로는 순서형이 있는데요, 문자열(string), 리스트(list), 튜플(tuple), 사용자 정의 클래스가 순서형에 속합니다. 예전에 for 문에 대해 공부했었죠? for 문에서 사용할 수 있는 것들이 바로 순서형의 자료입니다. 문자열이 순서형에 속하는 것에 주의해 주세요. 여러 개의 문자를 한 줄로 세워뒀으니 그럴 법도 하겠죠?

튜플과 사용자 정의 클래스에 대해서는 다음에 설명 드리지요.

자, 그 다음에 나오는 매핑형에 대해서 알아봅시다. 사전(dictionary), 클래스 인스턴스, C 확장형 등이 매핑형에 속한다고 하는군요. 이것들도 나중에 알아보도록 합시다.

강좌가 횟수를 거듭할수록 머리가 복잡해지네요. 제가 혼자 공부했으면 흐지부지할 때가 된 거지요. 그러나 여러분이 지켜보고 계신 한 포기는 없습니다. 제가 바로 이런 점을 노리고 혼자 공부하지 않고 굳이 강좌를 올리는 것입니다. 흐흐흐...

그러니 여러분도 힘내세요. 우리 함께 파이썬 정복하는 그 날까지~

출처 : wikidocs 왕초보를 위한 파이썬

'Python > 왕초보를 위한 파이썬' 카테고리의 다른 글

4.3. 튜플(Tuples)  (0) 2012.04.03
4.2. 문자열과 목록  (0) 2012.04.03
3.6. 연습문제  (0) 2012.04.03
3.5. 재귀적 용법  (0) 2012.04.03
3.4. 축약함수(Lambda)  (0) 2012.04.03

댓글