[파이썬 튜토리얼] 숫자 타입

PlanB·2022년 9월 27일
3

파이썬 튜토리얼

목록 보기
10/21
post-custom-banner

Level 1

파이썬은 숫자 타입으로 정수, 소수, 복소수를 제공한다.

정수

정수 타입은 음의 정수와 양의 정수, 0을 포함한다. 정식 명칭은 정수를 의미하는 integer를 축약한 int다.

print(123)
print(0)
print(-123)

결과

123
0
-123

실수

소수부가 있는 수는 실수로 분류한다. 실수 타입은 음의 실수와 양의 실수, 0.0을 포함한다. 정식 명칭은 float이다. 소수부의 자릿수 제한은 17자리로 정해져 있다.

print(1.0)
print(1.0000)
print(0.0)
print(-1.0)
print(0.12341234123412341234)

결과

1.0
1.0
0.0
-1.0
0.12341234123412341

정수부나 실수부가 0인 경우 생략해 표현할 수 있다.

print(0.34)
print(.34)
print(2.0)
print(2.)

결과

0.34
0.34
2.0
2.0

0.0의 정수부와 실수부를 한꺼번에 생략해 .으로 표현할 수는 없다.

print(.)

결과

  File "example.py", line 1
    print(.)
          ^
SyntaxError: invalid syntax

복소수

복소수 타입은 허수부가 포함된 수를 표현하기 위한 타입이다. 정식 명칭은 complex다. 허수단위를 나타내는 기호로 imaginary number의 약자 i 대신 j를 사용한다. 대문자로 J를 사용할 수도 있다.

print(1 + 0j)
print(2 + 3j)
print(2J)

결과

(1+0j)
(2+3j)
2j

Level 2

Digit grouping

실생활에서는 150,000처럼, 크기가 큰 숫자에 일정 자릿수마다 콤마(,)와 같은 구분자를 두어 읽기 쉽게 하는 경우가 있다. 이를 digit grouping이라고 부른다. Python 3.6부터는 이러한 표현의 용도로 숫자에 언더스코어(_)를 사용할 수 있다. PEP 515 - Underscores in Numeric Literals에 명시되어 있다.

print(1_500_000)

결과

1500000

결과를 보면 알 수 있듯이, 1_500_0001500000으로 해석된다. 언더스코어는 값을 읽기 쉽게 하기 위한 용도일 뿐이므로 무시되기 때문이다. 언더스코어는 언제 사용해도 상관 없기 때문에, 1_5_0000_0 또한 1500000으로 잘 해석된다. 그러나 숫자 값의 끝, 또는 한 곳에 두 번 연속해서 사용되는 언더스코어는 digit grouping으로 인정하지 않는다. 다음 예제의 모든 줄은 에러를 발생시킨다.

print(100000_)
print(100__000)

실수 또한 언더스코어를 통해 digit grouping을 표현할 수 있다. 정수부와 소수부에 모두 적용할 수 있다.

print(100_000.913_411_058)

결과

100000.913411058

허수 부분의 계수에도 digit grouping 용도로 언더스코어를 사용할 수 있다.

print(2 + 1_000j)

결과

(2+1000j)

2진수, 8진수, 16진수 표현

2진수, 8진수, 16진수로 정수를 표현할 수 있다. 각각 0b, 0o, 0x 뒤에, 각 진법에 맞게 값을 명시하면 된다. bbinary에서, ooctal에서, xhexadecimal에서 나온 알파벳이다.

print(0b1101)
print(0o143)
print(0xa7c)

결과

13
99
2684

진법을 명시하는 접두사나, 16진법 표현에 사용되는 알파벳에 대해 대소문자를 가리지 않는다. 예제의 3번 라인과 같이 대소문자가 혼용되어도 상관 없다.

print(0B1101)
print(0O143)
print(0XA7c)

결과

13
99
2684

여기서도 언더스코어를 통해 digit grouping이 가능하다. 접두사와 값 사이에도 언더스코어를 사용 수 있다.

print(0b_1101_0110)
print(0o_143_62)
print(0x_a7_c9)

결과

214
6386
42953

지수 표현

파이썬의 실수는 지수 표현이 가능하다. 지수부의 시작은 알파벳 e 또는 E로 표현한다.

print(42e+10)
print(-8E-3)

결과

420000000000.0
-0.008

가수부와 지수부가 빈 칸 없이 연결되어야 한다.

print(-8e - 3)

결과

  File "example.py", line 1
    print(-8e - 3)
            ^
SyntaxError: invalid syntax

Level 3

파이썬의 숫자 최적화

파이썬에서 -5부터 256까지의 정수는 메모리에 미리 할당해 둔다.

_256_1 = 256
_256_2 = 256

print(_256_1 is _256_2)

_257_1 = 257
_257_2 = 257

print(_257_1 is _257_2)

결과

True
False
profile
백엔드를 주로 다룹니다. 최고가 될 수 없는 주제로는 글을 쓰지 않습니다.
post-custom-banner

0개의 댓글