[02-2] Python - 숫자 (Numbers)

Language/Python 2016.08.07 15:38 posted by TechNote.kr


 가장 기본이 되는 자료형으로 숫자를 값으로 가지고 있다. 


숫자 자료형의 표현


Python에서는 4가지의 숫자형을 가지고 있다. 


  • int (plain integers)
  • long (long integers)
  • float (floating point numbers)
  • complex (complex numbers)



[int 의 표현]


범위 : -9223372036854775808 ~ 9223372036854775807 (-sys.maxsize-1 ~ sys.maxsize)


C언어의 long을 이용하여 구현된 자료형이다. 


다른 언어와 마찬가지로 interger 값이 저장된다. 0x로 시작되는 16진수, 0o으로 시작되는 8진수도 마찬가지로 int 로 다루어진다.

>>> a=1
>>> type(a)
<type 'int'>

>>> a=0xFF
>>> type(a)
<type 'int'>

>>> a=0o33
>>> type(a)
<type 'int'>
>>> import sys
>>> sys.maxsize
9223372036854775807
>>> -sys.maxsize-1
-9223372036854775808
>>> -sys.maxsize-2
-9223372036854775809L



[float 의 표현]


범위 : python이 돌아가는 machine에 달려있다. (sys.float_info 를 통해 확인)


>>> sys.float_info
sys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1)


>>> a=1.1
>>> type(a)
<type 'float'>



[long 의 표현]


범위 : 문서상으로 특정되어 있지 않다. (unlimited precision)


integer의 범위를 벗어나면 long integer 형으로 표시된다. 

>>> a=1234567890L
>>> type(a)
<type 'long'>



[complex (복소수)의 표현]

>>> a=1+2j
>>> type(a)
<type 'complex'>
>>> a.real
1.0
>>> a.imag
2.0



Type Casting



여타 다른 언어들과 마찬가지로 type을 변경할 수 있다. 


int 로 변환 : int(x)

float 로 변환 : float(x)

long 으로 변환 : long(x)

complex 로 변환 : complex(x)

>>> a = 1
>>> type(a)
<type 'int'>
>>> b = float(a)
>>> type(b)
<type 'float'>
>>> a = 1.0
>>> type(a)
<type 'float'>
>>> b = int(a)
>>> type(b)
<type 'int'>
>>> a = 1
>>> type(a)
<type 'int'>
>>> b = complex(a)
>>> print b
(1+0j)
>>> type(b)
<type 'complex'>