上QQ阅读APP看书,第一时间看更新
1.4.4 分数运算
对涉及分数计算的问题,通过代码处理可能并不容易,那么是否存在可以直接拿来使用的模块?
在Python中,fractions模块可以被用来执行包含分数的数学运算,相关代码(fraction_oper.py)示例如下:
from fractions import Fraction a = Fraction(5, 4) b = Fraction(7, 16) print(f'{a} + {b} = {a + b}') print(f'{a} * {b} = {a * b}') c = a * b print(f'numerator of {c} is: {c.numerator}') print(f'denominator of {c} is: {c.denominator}') print(f'float({c}) = {float(c)}') print(f'{c} limit denominator 8 = {c.limit_denominator(8)}') x = 3.75 print(f'{x} to fractions is: {Fraction(*x.as_integer_ratio())}')
执行py文件,输出结果如下:
5/4 + 7/16 = 27/16 5/4 * 7/16 = 35/64 numerator of 35/64 is: 35 denominator of 35/64 is: 64 float(35/64) = 0.546875 35/64 limit denominator 8 = 4/7 3.75 to fractions is: 15/4
大多数程序中一般不会出现分数的计算问题,但是有时候还是会用到的。如在允许接收分数形式测试并以分数形式执行运算的程序中,直接使用分数运算可以减少手动将分数转换为小数或浮点数的工作。