Pure Python rational numbers module for 2.5

梦想与她 提交于 2019-12-01 18:11:46
A. Coady

The fractions module from 2.6 can be ripped out if necessary. Grab fractions.py, numbers.py, and abc.py; all pure python modules.

You can get the single files from here (2.6 branch, 2.7 does not work): http://hg.python.org/cpython/branches

SymPy is a symbolic maths library written entirely in Python and has full support for rational numbers. From the tutorial:

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

>>> a
1/2

>>> a*2
1

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

There is also GMP for Python (GMPY) which, while not pure Python, is probably more efficient.

One more thing to try is Rat.py from demo folder in Python 2.5 maintenance branch. If i understand correctly, it is the daddy of 2.6 fractions. It's a single module without dependencies.

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

UPDATE: Nah, fractions.py is about 2.5 times faster for my task.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!