Python에서 Fraction 모듈은 유리수 산술을 지원합니다. 이 모듈을 사용하여 정수, 부동 소수점, 소수 및 기타 숫자 값과 문자열에서 분수를 만들 수 있습니다.
분수 인스턴스의 개념이 있습니다. 분자와 분모의 정수 쌍으로 구성됩니다.
fractions.Fraction 클래스 Fraction 개체를 만드는 데 사용됩니다. 분자와 분모가 필요합니다. 분자의 기본값은 0이고 분모는 1입니다. 분모가 0일 때 ZeroDivisionError를 발생시킵니다.
먼저 분자와 분모를 사용하여 클래스에서 분수를 만드는 방법을 살펴보겠습니다.
예시 코드
from fractions import Fraction as frac print(frac(45, 54)) print(frac(12, 47)) print(frac(0, 15))
출력
5/6 12/47 0
Fraction 개체의 인수로 일부 부동 소수점 숫자를 제공할 수 있습니다. 정확한 부동 소수점 값을 제공하면 정수 유형의 분자 및 분모 값으로 변환을 시도합니다. 이 경우 대략적인 값에 도달하려고 합니다. 부동 소수점 숫자가 문자열로 제공되면 정확한 값을 분수로 찾으려고 시도합니다. 다음 예에서 차이점을 확인할 수 있습니다.
예시 코드
from fractions import Fraction as frac print(frac(33.33)) print(frac('33.33'))
출력
2345390243441541/70368744177664 3333/100
Fraction 개체에 대한 문자열 유형 인수에 대한 몇 가지 다른 예를 살펴보겠습니다. 그것은 또한 숫자의 부호를 지원합니다. + 또는 - 기호를 지원합니다.
예시 코드
from fractions import Fraction as frac print(frac('5/6')) print(frac('-25.12')) print(frac('96.251 \t\n')) print(frac('3.14159265359'))
출력
5/6 -628/25 96251/1000 314159265359/100000000000
우리가 보았듯이 때로는 분모가 Fraction 개체에서 매우 큽니다. 따라서 분모 길이를 제한할 수 있습니다. 기본 길이는 1000000입니다. 부동 소수점 데이터에 대한 합리적인 근사를 수행하는 데 도움이 됩니다. 분모를 제한하기 위해 limit_denominator()라는 함수가 있습니다. .
때때로 우리는 전체 fraction 객체 없이 분자나 분모만 원합니다. 그래서 이 메소드는 분자와 분모 키워드를 가지고 있습니다.
예시 코드
from fractions import Fraction as frac print(frac('3.14159265359')) print(frac('3.14159265359').limit_denominator(1000)) print(frac('3.14159265359').limit_denominator(100)) print(frac('3.14159265359').limit_denominator(10)) print(frac('36.25')) print(frac('36.25').numerator) print(frac('36.25').denominator)
출력
314159265359/100000000000 355/113 311/99 22/7 145/4 145 4
분수는 덧셈, 뺄셈, 곱셈, 나눗셈, 거듭제곱 등과 같은 수학 연산도 지원할 수 있습니다.
예시 코드
from fractions import Fraction as frac print('Add: ' + str(frac('5/4') + frac('9/8'))) print('Subtract: ' + str(frac('15/20') - frac('2/8'))) print('Multiply: ' + str(frac('2/3') * frac('5/7'))) print('Divide: ' + str(frac('80/125') / frac('12/45'))) print('Power: ' + str(frac('5/6') ** 3))
출력
Add: 19/8 Subtract: 1/2 Multiply: 10/21 Divide: 12/5 Power: 125/216
제곱근, 바닥, 천장 및 기타 연산도 이 개체에서 지원됩니다.
예시 코드
from fractions import Fraction as frac import math print('Square Root: ' + str(math.sqrt(frac(36, 64)))) print('Square Root: ' + str(frac(math.sqrt(frac(36, 64))))) print('Floor Value: ' + str(math.floor(frac('22/7')))) print('Ceiling Value: ' + str(math.ceil(frac('22/7'))))
출력
Square Root: 0.75 Square Root: 3/4 Floor Value: 3 Ceiling Value: 4