2.5的纯Python有理数模块

时间:2008-11-30 20:42:51

标签: python rational-numbers

有人见过这样的事吗?小型自给自足模块是首选。

3 个答案:

答案 0 :(得分:9)

如果需要,可以删除2.6中的fractions module。 fractions.py,numbers.py和abc.py;所有纯python模块。

你可以从这里获得单个文件(2.6分支,2.7不起作用): http://hg.python.org/cpython/branches

答案 1 :(得分:8)

SymPy是一个完全用Python编写的符号数学库,完全支持有理数。来自tutorial

>>> 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,但可能效率更高。

答案 2 :(得分:2)

还有一件事是来自Python 2.5维护分支的demo文件夹中的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倍。