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+ 次浏览

启动您的 职业生涯

完成课程获得认证

开始学习
广告