파이썬은 다양한 숫자형(numeric type)을 기본적으로 제공합니다. 대표적인 숫자형으로는 정수형(int), 부동소수점형(float), 복소수형(complex)이 있으며, 각각의 특성과 용도가 다릅니다.
파이썬의 기본 숫자형 타입
복소수(complex)는 실수부(real)와 허수부(imag) 두 부분으로 구성되며, 일반적으로 (a + bj) 형태로 표현합니다. 여기서 a는 실수부, b는 허수부에 해당합니다.
또한 파이썬에서는 표준 숫자형 외에도 유용한 모듈을 제공합니다. fractions 모듈의 Fraction 클래스는 분수 형태의 유리수를 다룰 수 있게 해주고, decimal 모듈의 Decimal 클래스는 부동소수점 오차 없이 정밀한 소수 계산을 지원합니다.
숫자 타입을 변환할 때는 int(), float(), complex() 같은 내장 함수를 사용합니다. 예를 들어 문자열이나 실수를 정수로 바꾸려면 int()를, 정수를 실수로 바꾸려면 float()를 사용하면 됩니다.
숫자형의 주요 연산자 및 내장 함수
파이썬 숫자형에 사용할 수 있는 주요 연산자와 함수는 다음과 같습니다.
| 번호 | 연산자/함수 및 설명 |
|---|---|
| 1 | x + y x와 y의 합 |
| 2 | x - y x에서 y를 뺀 값 |
| 3 | x * y x와 y의 곱 |
| 4 | x / y x를 y로 나눈 값 (항상 실수 반환) |
| 5 | x // y x를 y로 나눈 몫 (내림 나눗셈) |
| 6 | x % y x를 y로 나눈 나머지 |
| 7 | x ** y x의 y제곱 |
| 8 | -x x의 음수 값 (부호 반전) |
| 9 | +x x 그대로의 값 |
| 10 | abs(x) x의 절댓값(크기) |
| 11 | int(x) x를 정수형으로 변환 |
| 12 | float(x) x를 부동소수점 실수형으로 변환 |
| 13 | complex(re, im) 실수부와 허수부로 복소수 생성 |
| 14 | x.conjugate() 복소수 x의 켤레복소수 구하기 |
| 15 | divmod(x, y) x를 y로 나눈 몫과 나머지를 튜플로 반환 |
| 16 | pow(x, y) x의 y제곱 계산 (** 연산자와 동일) |
예제 코드
아래 예제는 산술 연산자, 복소수 연산, divmod(), Fraction 사용법을 보여줍니다.
from fractions import Fraction
x = 100
y = 3.256
print(x + y)
print(x - y)
print(x * y)
print(x / y)
print(x // y)
print(x % 7)
print(12 ** 3)
myComplex1 = complex('7+5j')
myComplex2 = complex('26+8j')
res = myComplex1 + myComplex2
print(res)
print(res.conjugate())
print(divmod(x, 3))
print(Fraction(0.125))
실행 결과
103.256 96.744 325.59999999999997 30.712530712530715 30.0 2 1728 (33+13j) (33-13j) (33, 1) 1/8
결과 해석
x * y의 결과가 325.59999999999997처럼 출력된 것은 부동소수점 방식의 한계 때문입니다. 이진법으로 정확히 표현할 수 없는 소수가 발생하는 대표적인 사례이며, 정밀한 계산이 필요하다면 decimal.Decimal을 사용하는 것이 좋습니다.
복소수 덧셈 결과인 (33+13j)에 conjugate()를 적용하면 허수부의 부호만 반전된 (33-13j)가 됩니다. 또한 divmod(100, 3)은 몫 33과 나머지 1을 튜플 (33, 1)로 반환하며, Fraction(0.125)는 소수 0.125를 분수 1/8로 정확하게 표현해 줍니다.