有人见过这样的事吗?小型自给自足模块是首选。
答案 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倍。