适用于2.5的纯Python有理数模块

7 投票
3 回答
2012 浏览
提问于 2025-04-11 20:18

有没有人见过这样的东西?大家更喜欢小型的自给自足的模块。

3 个回答

3

还有一个可以尝试的东西是来自Python 2.5维护版本的Rat.py,它在演示文件夹里。如果我理解得没错的话,它是2.6版本的fractions的“老大”。这个模块是独立的,没有其他依赖。

>>> from Rat import rat
>>> rat(1) / rat(3)
Rat(1,3)
>>> rat(1, 3) ** 2
Rat(1,9)

更新:其实,fractions.py在我的任务中快了大约2.5倍。

9

SymPy 是一个完全用 Python 编写的符号数学库,支持有理数的运算。你可以在 这个教程 中找到更多信息:

>>> from sympy import *
>>> a = Rational(1,2)

>>> a
1/2

>>> a*2
1

>>> Rational(2)**50/Rational(10)**50
1/88817841970012523233890533447265625

还有一个叫做 GMP for Python (GMPY) 的库,虽然它不是纯 Python 编写的,但可能会更高效。

10

如果需要的话,可以把Python 2.6中的分数模块提取出来。只需获取fractions.py、numbers.py和abc.py这三个文件;它们都是纯Python模块。

你可以从这里下载这些单独的文件(注意:2.6分支可以用,2.7的不能用): http://hg.python.org/cpython/branches

撰写回答