파이썬의 자료형

자료형

지금까지 우리는 변수에 숫자, 문자열, 리스트 등의 값을 마음대로 넣어서 사용해 왔다. 그러나 프로그램이 실행되려면 컴퓨터는 각 변수에 어떤 종류의 값이 들어가 있는지 알아야 한다. 값을 저장하는 방식이나 계산하는 방법이 다르기 때문이다.

이러한 값의 종류를 자료형(data type) 혹은 단순히 타입(type)이라고 한다.

예를 들어 정수인 1과 문자열인 "1"이 컴퓨터에 저장될 때 어느 정도의 메모리를 차지하는지 알아보면 두 값의 저장 방식이 다르다는 것을 알 수 있다. 파이썬에서 변수의 메모리 크기를 알기 위해서는 sys 패키지의 getsizeof 명령을 사용한다.


In [17]:
from sys import getsizeof

In [19]:
a = 1
getsizeof(a)


Out[19]:
24

In [20]:
b = "1"
getsizeof(b)


Out[20]:
38

파이썬의 자료형

파이썬에서 사용할 수 있는 자료형 중 많이 사용하는 것은 다음과 같다.

  • None
  • Boolean
  • Int
  • Float
  • Complex
  • String
  • Unicode
  • Tuple
  • List
  • Dict
  • Function

변수나 값의 자료형을 알아보기 위해서는 type 명령을 사용하면 된다.

변수가 비어있음을 표시할 때는 None 타입을 사용한다.


In [21]:
type(None)


Out[21]:
NoneType

In [22]:
type(True)


Out[22]:
bool

In [23]:
type(1)


Out[23]:
int

In [24]:
type(3.14)


Out[24]:
float

복소수를 사용할 때는 허수부 숫자 뒤에 j문자를 붙인다.


In [33]:
type(2 + 3j)


Out[33]:
complex

In [26]:
type("abc")


Out[26]:
str

In [27]:
type(u"abc")


Out[27]:
unicode

In [29]:
type((1, 2, 3))


Out[29]:
tuple

In [30]:
type([1, 2, 3])


Out[30]:
list

In [31]:
type({"A": 10, "B": 20, "C": 30})


Out[31]:
dict

파이썬에서는 함수도 독자적인 자료형을 가진다. 파이썬에서 함수의 자료형 이름은 function 이다.


In [34]:
def f():
    return 1

type(f)


Out[34]:
function

자료형과 클래스의 차이점

파이썬에서 자료형과 클래스는 같은 의미이다. 클래스를 알기 위해서는 __class__ 속성을 살펴보면 된다.


In [35]:
a = 1

In [36]:
type(a)


Out[36]:
int

In [37]:
a.__class__


Out[37]:
int

In [38]:
b = [1, 2, 3]

In [39]:
type(b)


Out[39]:
list

In [40]:
b.__class__


Out[40]:
list

In [43]:
class C(object):
    pass

c = C()

위 코드에서 pass 키워드는 아무런 일도 하지 않는 들여쓰기 블럭을 만들기 위한 것이다.


In [44]:
type(c)


Out[44]:
__main__.C

In [46]:
c.__class__


Out[46]:
__main__.C

클래스 이름앞의 __main__은 클래스가 정의된 모듈(module) 이름이다.