Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python의 분수 모듈

<시간/>

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