推荐使用 fractions.Fraction 类进行精确分数计算:支持整数/字符串初始化(避免浮点数)、四则运算自动约简、混合类型运算及分子分母提取,如 Fraction(1,2)+Fraction(2,3)-Fraction(1,6) 得 Fraction(4,3)。

Python 中进行分数计算,推荐使用标准库中的 fractions.Fraction 类。它能精确表示和运算分数(有理数),避免浮点数误差,适合数学计算、教学演示或需要精确结果的场景。
创建分数对象
可以通过整数、字符串或浮点数(不推荐用浮点数初始化,易引入精度问题)构造 Fraction:
-
Fraction(3, 4)→ 表示 3/4 -
Fraction('5/6')→ 从字符串解析,安全且推荐 -
Fraction(0.75)→ 虽可运行,但0.75是浮点近似值,可能意外变成Fraction(3/4)或更复杂形式;建议优先用字符串或整数对 -
Fraction(2)→ 等价于Fraction(2, 1),即整数自动转为分母为 1 的分数
基本四则运算
支持 +、−、×、÷ 运算符,结果仍为最简分数:
-
Fraction(1, 2) + Fraction(1, 3)→Fraction(5, 6) -
Fraction(3, 4) * Fraction(2, 5)→Fraction(3, 10) -
Fraction(7, 8) / Fraction(1, 4)→Fraction(7, 2) - 支持混合类型运算,如
Fraction(1, 2) + 1→Fraction(3, 2)(整数自动转为分数)
获取与转换信息
方便提取数值成分或转为其他类型:
在现实生活中的购物过程,购物者需要先到商场,找到指定的产品柜台下,查看产品实体以及标价信息,如果产品合适,就将该产品放到购物车中,到收款处付款结算。电子商务网站通过虚拟网页的形式在计算机上摸拟了整个过程,首先电子商务设计人员将产品信息分类显示在网页上,用户查看网页上的产品信息,当用户看到了中意的产品后,可以将该产品添加到购物车,最后使用网上支付工具进行结算,而货物将由公司通过快递等方式发送给购物者
立即学习“Python免费学习笔记(深入)”;
-
f = Fraction(17, 4)→f.numerator是 17,f.denominator是 4 -
float(f)→ 转为浮点数(仅用于显示或兼容,会丢失精度) -
str(f)→ 返回字符串形式,如'17/4';若为带分数,需自行格式化(如f // 1取整数部分,f % 1取真分数部分) -
f.limit_denominator(max_denominator=100)→ 将近似浮点数转为“最接近的、分母不超过指定值”的分数(常用于将小数还原为常用分数)
实际小例子:解一道分数题
计算:1/2 + 2/3 − 1/6
from fractions import Fraction result = Fraction(1, 2) + Fraction(2, 3) - Fraction(1, 6) print(result) # 输出:Fraction(4, 3) print(float(result)) # 可选:1.333...
结果自动约分为最简形式 4/3,全程无精度损失。










