반응형
Fraction
객체는 파이썬의 fractions
모듈에서 제공하는 클래스입니다. 이 클래스는 분수를 정확하게 표현하고, 분수 연산을 할 때 유용합니다. Fraction
객체는 두 정수(분자와 분모)로 분수를 표현하며, 수학적인 분수 연산을 수행할 때 부동소수점 연산의 오차를 피할 수 있습니다.
주요 특징 및 사용법
- Fraction 객체 생성:
Fraction
객체는 두 개의 정수(분자와 분모)를 인자로 받아 생성할 수 있습니다.- 분자가 하나만 주어지면 분모는 1로 간주됩니다.
from fractions import Fraction
f1 = Fraction(3, 4) # 3/4
f2 = Fraction(5) # 5/1
f3 = Fraction(1, 3) # 1/3
- 자동 약분:
Fraction
객체는 생성 시 자동으로 약분됩니다. 예를 들어Fraction(8, 4)
는Fraction(2, 1)
로 표현됩니다.
from fractions import Fraction
f = Fraction(8, 4)
print(f) # 출력: 2
- 문자열이나 부동소수점에서 생성:
Fraction
객체는 문자열이나 부동소수점 숫자를 인자로 받아 생성할 수도 있습니다. 이 경우 문자열은 분수로, 부동소수점은 해당 숫자와 동일한 분수로 변환됩니다.
from fractions import Fraction
f1 = Fraction('3/4')
f2 = Fraction('0.75')
f3 = Fraction(0.5)
print(f1) # 출력: 3/4
print(f2) # 출력: 3/4
print(f3) # 출력: 1/2
- 분수 연산:
Fraction
객체는 덧셈, 뺄셈, 곱셈, 나눗셈 등 모든 기본 산술 연산을 지원합니다. 이러한 연산의 결과도Fraction
객체로 반환됩니다.
from fractions import Fraction
f1 = Fraction(1, 2)
f2 = Fraction(3, 4)
result_add = f1 + f2 # 1/2 + 3/4 = 5/4
result_sub = f1 - f2 # 1/2 - 3/4 = -1/4
result_mul = f1 * f2 # 1/2 * 3/4 = 3/8
result_div = f1 / f2 # 1/2 ÷ 3/4 = 2/3
print(result_add) # 출력: 5/4
print(result_sub) # 출력: -1/4
print(result_mul) # 출력: 3/8
print(result_div) # 출력: 2/3
- 유리수 근사:
- 부동소수점 숫자를
Fraction
으로 변환하면, 해당 숫자와 가장 근사한 분수로 변환됩니다.
- 부동소수점 숫자를
from fractions import Fraction
f = Fraction(2.75)
print(f) # 출력: 11/4
- 프로퍼티:
Fraction
객체는numerator
와denominator
프로퍼티를 통해 분자와 분모에 접근할 수 있습니다.
from fractions import Fraction
f = Fraction(5, 8)
print(f.numerator) # 출력: 5
print(f.denominator) # 출력: 8
- 소수점과의 상호 변환:
Fraction
객체는 소수점으로 변환이 가능하며, 반대로 소수점에서 분수로 변환할 수도 있습니다.
from fractions import Fraction
f = Fraction(1, 3)
float_value = float(f)
print(float_value) # 출력: 0.3333333333333333
f_from_float = Fraction(float_value)
print(f_from_float) # 출력: 6004799503160661/18014398509481984
- 이처럼 부동소수점에서 생성된
Fraction
은 정확히 동일한 부동소수점을 표현하는 분수로 변환됩니다.
- 응용 예:
Fraction
객체는 계산의 정확도가 중요한 경우, 특히 수학적, 과학적, 금융적 계산에서 매우 유용합니다.- 예를 들어, 복잡한 분수 계산에서 부동소수점 연산 오차를 피할 수 있습니다.
Fraction의 활용 예
- 정밀한 수학적 계산이 필요한 경우
- 단위 변환에서 분수 표현이 유리한 경우
- 교육적인 목적으로 분수의 개념을 프로그래밍에서 사용할 때
Fraction
객체는 float
나 Decimal
객체와 비교하여 정밀한 수학적 연산을 쉽게 처리할 수 있게 해줍니다.
반응형
'언어 > Python' 카테고리의 다른 글
[ Python ] Random 패키지 사용하기 (0) | 2024.08.26 |
---|---|
[ Python ] complex 클랙스를 사용해서 복소수 다루기 (0) | 2024.08.26 |
[ Python ] 큰 수 계산에 Decimal 객체 사용하기 (0) | 2024.08.25 |
[ Python ] 정확하고 오차없는 10진수 연산 - Decimal 클래스 (0) | 2024.08.21 |
[ Python ] 클래스를 상속해서 나의 클래스 만들기 (다중 상속 포함) (0) | 2024.08.13 |