Python 的 Fraction 模組
在 Python 中,Fraction 模組支援有理數運算。使用此模組,我們可以從整數、浮點數、十進位制數和其他數值以及字串建立分數。
此類的建構函式接受分子和分母作為引數,並從中建立分數。分子的預設值為 0,分母的預設值為 1。當分母為 0 時,建構函式會引發 ZeroDivisionError 異常。
建立 Fraction 例項
首先,我們將瞭解如何使用分子和分母建立分數。
示例
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
讓我們看看 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()** 的函式。
示例
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
廣告