🧮 Python 标准库 - fractions 有理数处理
📌 模块用途
fractions 模块用于表示有理数(fraction),即分子/分母形式的数值,支持精确数学运算,适合处理如下场景:
- 需要避免浮点误差的计算
- 分数形式更直观的数学/教育场景
- 需要分数约简、通分等操作
🔧 1️⃣ 基本使用:创建分数
Fraction 类型是分数类,支持多种初始化方式。
从 fractions 导入 Fraction
a = Fraction(3, 4) # 分子3,分母4
b = Fraction("0.5") # 从字符串创建
打印(a, b)
➕ 2️⃣ 支持加减乘除等运算
从 fractions 导入 Fraction
a = Fraction(1, 3)
b = Fraction(1, 6)
打印(a + b)
打印(a * b)
打印(a / b)
🔁 3️⃣ 自动约分和通分
Fraction 创建后自动化简为最简形式。
f = Fraction(8, 12)
打印(f)
🔄 4️⃣ 与 float 的转换
可从 float 创建 Fraction,也可将 Fraction 转换为 float。
f = Fraction.from_float(0.75)
打印(f)
打印(float(f))
⚠️ 注意事项
- 创建时建议使用字符串或整数,避免 float 的误差
- 精度要求极高时可结合
decimal模块使用 - 分母不能为 0(会抛出
ZeroDivisionError)
📌 小结
| 特性 | 说明 |
|---|---|
| 类型名 | fractions.Fraction |
| 精度 | 精确的分数表示 |
| 自动约简 | 自动约简为最简分数 |
| 支持操作 | 加、减、乘、除、比较、转换 |
| 初始化方式 | 整数、两个整数、字符串、float(慎用) |