41-python中数学运算
2017-12-22 本文已影响0人
mingminy
Python 提供的基本数据类型int、float可以做整数和浮点的四则运算以及乘方等运算。
但是,四则运算不局限于int和float,还可以是有理数、矩阵等。
要表示有理数,可以用一个Rational类来表示:
class Rational(object):
def __init__(self, p, q):
self.p = p
self.q = q
p、q 都是整数,表示有理数 p/q。
如果要让Rational进行+运算,需要正确实现__add__:
class Rational(object):
def __init__(self, p, q):
self.p = p
self.q = q
def __add__(self, r):
return Rational(self.p * r.q + self.q * r.p, self.q * r.q)
def __str__(self):
return '%s/%s' % (self.p, self.q)
__repr__ = __str__
现在可以试试有理数加法:
>>> r1 = Rational(1, 3)
>>> r2 = Rational(1, 2)
>>> print r1 + r2
5/6