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

更新於:2024年10月9日

6K+ 次瀏覽

啟動您的 職業生涯

完成課程獲得認證

開始學習
廣告