Python도 다른 언어들과 마찬가지로 자료형이 존재합니다.
자료형에는 숫자형, 문자열 자료형, 리스트 자료형 등이 있는데요!
이번 게시물에서는 숫자형과 그 종류에 대해 알아보겠습니다.
참고로, 예제를 진행하면서 값이 어느 자료형인지 확인해 볼텐데요
이 때는 자료형의 타입을 확인하는 함수 'type'을 사용하겠습니다.
숫자형
숫자형(Number)는 숫자 형태로 이루어진 자료형입니다.
떠올릴 수 있는 일반적인 숫자 형태는 정수, 실수가 있겠지요?
그 외에도 2진수, 8진수, 16진수가 있습니다.

정수형
정수형(Integer)는 정수를 뜻하는 자료형입니다.
일반적으로 저희가 알고 있는 양수, 음수, 0 등이 있습니다.
아래는 변수에 양수, 음수, 0 값을 넣고 출력한 결과입니다.
type을 이용해 각 값의 자료형을 출력해보면 정수를 뜻하는 int가 뜨는 것을 볼 수 있습니다.
>>> a = 123
>>> b = -123
>>> c = 0
>>> a, b, c
(123, -123, 0)
>>> type(a), type(b), type(c)
(<class 'int'>, <class 'int'>, <class 'int'>)
실수형
실수형(Floating-point)는 소수점이 포함된 숫자를 뜻하는 자료형입니다.
일반적으로 알고 있는 소수점 방식 외에도 '컴퓨터식 지수 표현 방식'(ex. 4.24e10)을 사용할 수도 있습니다.
아래는 변수에 실수값을 넣고 출력한 결과입니다.
type을 이용해 각 값의 자료형을 출력해보면 실수를 뜻하는 float가 뜨는 것을 볼 수 있습니다.
>>> a = 123.45
>>> b = -123.45
>>> c = 123.45e10
>>> d = 123.45e-10
>>> a, b, c, d
(123.45, -123.45, 1234500000000.0, 1.2345e-08)
>>> type(a), type(b), type(c), type(d)
(<class 'float'>, <class 'float'>, <class 'float'>, <class 'float'>)
2진수 / 8진수 / 16진수
일반적으로 사용하는 정수와 실수 외에도
숫자형으로 2진수, 8진수, 16진수를 나타낼 수 있습니다.
2진수(Binary)는 '0b' 로 시작하며 0부터 1까지 입력 가능합니다.
8진수(Octal)는 '0o' 로 시작하며 0부터 7까지 입력 가능합니다.
16진수(Hexadecimal)는 '0x' 로 시작하며 0부터 F까지 입력 가능합니다.
# 2진수
>>> a = 0b1001
>>> a
9
>>> b = 0b1002 # Error발생 / SyntaxError: invalid digit '2' in binary literal
# 8진수
>>> a = 0o17
>>> a
15
>>> b = 0o18 # Error발생 / SyntaxError: invalid digit '8' in octal literal
# 16진수
>>> a = 0x1F
>>> a
31
>>> b = 0x1G # Error발생 / SyntaxError: invalid syntax
정수 → 2진수/8진수/16진수로 변환
정수형을 진수 형태로 변환할 때에는 format 함수를 사용할 수 있습니다.
아래와 같은 형태로 사용되며, 진수 타입은 b(2진수), o(8진수), x(16진수) 가 있습니다.
format( 정수 값, '진수 타입(문자형)')
참고로 format 결과는 문자열(String) 타입입니다.
>>> format(17, 'b')
'10001'
>>> format(17, 'o')
'21'
>>> format(17, 'x')
'11'
>>> type(format(17, 'b'))
<class 'str'>
2진수/8진수/16진수 → 정수로 변환
진수 형태를 정수형으로 변환할 때에는 int 함수를 사용할 수 있습니다.
아래와 같은 형태로 사용되며, 진수 타입은 숫자형으로 표시되며 2(2진수), 8(8진수), 16(16진수) 가 있습니다.
int( 진수 값, '진수 타입(숫자형)')
int 결과는 정수형(Integer) 타입입니다.
>>> int('0b11', 2)
3
>>> int('0o11', 8)
9
>>> int('0x11', 16)
17
>>> type(int('0b11',2))
<class 'int'>
[ 참고 ]
책 Doit! 점프 투 파이썬
'Python > Python 기초 배우기' 카테고리의 다른 글
[Python] 자료형 - 실수형 소수점 내림, 올림, 버림, 반올림(half to even), 소수점 자르기 (0) | 2023.01.13 |
---|---|
[Python] 자료형 - 숫자형 최대값(Max), 최소값(Min) (0) | 2023.01.12 |
댓글