숫자(number) 타입은 타입 개념의 가장 기본이 되는 자료형이다. 파이썬은 복소수(실수와 허수) 전체에 대해 빌트인 타입이 존재한다. Java와 같이 주류 프로그래밍 언어들 중 빌트인 숫자 타입에 허수부를 지원하지 않는 것들도 있으므로, 특별하다고 느껴질 수도 있다. 파이썬의 숫자 타입은 정수, 소수, 복소수 타입으로 나눌 수 있다.

정수(int)

수학에서 말하는 것처럼, 양의 정수, 음의 정수, 0을 다룬다. 별도의 최대값은 없다.

정수 리터럴

먼저, 음의 0(-0)은 없다. 당연한 논리지만, JavaScript에는 실제로 양의 0과 음의 0이 나뉘어 있기 때문에 언급하게 됐다.

파이썬의 정수 리터럴은 2진수, 8진수, 10진수, 16진수 표현이 가능하다. 10진수가 아닌 정수 리터럴을 정의하는 경우, 0 뒤진법에 해당하는 영어 명칭의 첫 글자(b(binary), o(oct), x(hex))를 명시한 후 값을 정의하면 된다. 그 예는 다음과 같다 : 0b110, 0o15, 0xF1F

가독성을 높이기 위해 리터럴에 언더스코어를 사용할 수 있다. 5000050,000으로 표기하는 것과 같은 맥락이다. leading, tailing, doubly 형태를 제외하고는 자유롭게 사용 가능하다. 예를 들어, _123, 123_, 12__3은 불가능하고, 12_3_456_7은 가능하다. 표기 상의 sugar일 뿐이므로, 실제로는 언더스코어가 제거된 상태로 다뤄진다.

소수(float)

소수부가 있는 수이다. 이전 글에서도 말했듯, 파이썬은 소수를 위한 타입으로 float만을 사용한다. 파이썬 버전마다 다르긴 하겠지만, 내가 사용하고 있는 Python 3.6.5에서는 소수 리터럴이 소수점 아래 15자리까지 표현할 수 있다.

소수 리터럴

e 표기법(지수 표현)을 사용할 수 있다. 그러나 음의 0이 없는 것과는 다르게 음의 0.0이 존재한다. 부동소수점을 사용하기 때문이다. 0이나 0.0의 지수 표현 결과는 0.0, -0이나 -0.0의 지수 표현 결과는 -0.0이 된다.

복소수(complex)

수학 기준으로는 복소수가 실수와 허수를 모두 포함하므로 complex 타입이 int나 float이나 모두 표현할 수 있다고 생각할 수 있으나, 여기서는 단지 허수부가 들어 있는 숫자를 다루기 위한 타입 수준으로만 생각하면 된다. 통계나 데이터 과학에 관련된 니즈가 많은 언어라 그런지는 몰라도, 빌트인으로 복소수 타입을 지원한다. 객체의 property로 실수부/허수부를, 절대값을 반환하는 빌트인 함수인 abs()에 넘기면 복소수의 크기를, conjugate 메소드를 통해 켤레복소수를 알아낼 수 있다.

복소수 리터럴

소수부+허수부 또는 허수부만으로 이루어지며, imaginary number의 약자 i 대신 j를 사용한다. 4번 라인부터는 파이썬의 복소수 타입 지원에 대한 추가적인 예제일 뿐이므로 프로퍼티, 함수, 메소드 개념을 이해하기 어렵다면 1, 2번 라인만 봐도 무방하다.

'프로그래밍 > Python' 카테고리의 다른 글

산술 연산자  (0) 2019.01.28
파이썬의 타입 시스템과 빌트인 타입, 변수 선언  (0) 2019.01.23
주석  (0) 2019.01.07
Hello World, 세미콜론은 optional하다?  (0) 2019.01.03
개요와 설치  (0) 2019.01.01

+ Recent posts