一文了解 Python 中分数的表示及处理方法¶
在 Python 中,有一个分数模块 Fractions,支持有理数运算。使用此模块,我们可以使用整数、浮点数或其他一些数值、字符串来创建分数。 Fractions 中,分数是由一对整数作为分子和分母组成。当分母为 0 时,它会引发零除异常。
使用整数创建分数¶
在 fractions 模块中,可以使用 fraction() 函数来创建分数。fraction() 函数包含两个参数,分别是分子和分母。
from fractions import Fraction as frac
print(frac(15, 45))
print(frac(11, 17))
print(frac(0, 5))
输出:
1/3
11/17
0
反过来,还可以从分数中提取分子分母。
from fractions import Fraction as frac
print(frac(11, 17).numerator)
print(frac(11, 17).denominator)
输出:
11
17
使用浮点数创建分数¶
还可以使用浮点数作为 Fraction() 的参数。函数会将浮点数转换为整数类型的分子和分母。在这种情况下,会尝试达到最近似值。如果浮点数以字符串形式提供,它将尝试返回相应的分数值。
from fractions import Fraction as frac
print(frac(0.5))
print(frac(0.33))
print(frac(1.33))
print(frac('0.5'))
输出:
1/2
5944751508129055/18014398509481984
748723438050345/562949953421312
1/2
我们所看到的,有时分母的值非常大。因此,我们可以使用 limit_denominator() 函数限制分母长度。默认长度为 1000000。
from fractions import Fraction as frac
print(frac(0.5))
print(frac(0.33))
print(frac(1.33).limit_denominator(max_denominator=100))
print(frac('0.5'))
输出:
1/2
5944751508129055/18014398509481984
133/100
1/2
分数的算术运算¶
fractions 的分数对象还可以进行算术运算,如加法、减法、乘法、除法、幂等。
from fractions import Fraction as frac
print(f"加法:{frac('5/2') + frac('9/5')}")
print(f"减法:{frac('1/2') - frac('1/4')}")
print(f"乘法:{frac('12/13') * frac('15/17')}")
print(f"除法:{frac('8/15') / frac('2/5')}")
print(f"幂:{frac('2/3') ** 3}")
输出:
加法:43/10
减法:1/4
乘法:180/221
除法:4/3
幂:8/27
结合 math 模块,可以使用各种函数基于分数进行计算。
from fractions import Fraction as frac
import math
print(math.sqrt(frac(36, 64)))
print(frac(math.sqrt(frac(36, 64))))
print(math.floor(frac('22/7')))
print(math.ceil(frac('22/7')))
输出:
0.75
3/4
3
4
文章创作不易,如果您喜欢这篇文章,请关注、点赞并分享给朋友。如有意见和建议,请在评论中反馈!