파이썬의 math.frexp() 함수는 주어진 숫자를 가수(mantissa)와 지수(exponent)로 분해하는 데 사용되는 수학 함수입니다. 부동소수점 연산이나 정밀한 수치 계산에서 자주 활용되며, 이 글에서는 기본 문법부터 실전 예제까지 다양한 활용 방법을 살펴보겠습니다.
문법
함수의 기본 문법과 동작 방식은 아래와 같습니다.
math.frexp( x ) 매개변수: 유효한 숫자 (양수 또는 음수 모두 가능) 반환값: 주어진 숫자 x에 대한 가수 m과 지수 e를 튜플 (m, e) 형태로 반환 예외: x가 숫자가 아니면 TypeError 발생
기본 사용 예제
가장 간단한 형태로, 숫자에 함수를 직접 적용하여 가수와 지수를 구할 수 있습니다.
예제
import math # 가수와 지수 구하기 print(math.frexp(12)) print(math.frexp(10.5))
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
(0.75, 4) (0.65625, 4)
결과를 해석해 보면, 12는 0.75 × 2⁴로 표현되고, 10.5는 0.65625 × 2⁴로 표현됩니다. 즉, 항상 x = m × 2^e 관계가 성립합니다.
리스트와 튜플과 함께 사용하기
시퀀스 자료형에도 활용할 수 있습니다. 아래 예제에서는 리스트와 튜플을 만든 뒤, 인덱스를 이용해 특정 요소에 함수를 적용합니다.
예제
import math listA = [3,9,4,7] tupA = (3.8,12.6,12.5) # 가수와 지수 구하기 print(math.frexp(listA[2])) print(math.frexp(tupA[1]))
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
(0.5, 3) (0.7875, 4)
리스트의 세 번째 요소인 4는 0.5 × 2³으로, 튜플의 두 번째 요소인 12.6은 0.7875 × 2⁴로 분해된 것을 확인할 수 있습니다. 이처럼 math.frexp()는 정수, 실수는 물론 시퀀스의 개별 요소에도 손쉽게 적용할 수 있어 다양한 수치 계산 상황에서 유용하게 쓰입니다.