python重载四则运算符及输出格式设置
2016-08-21 19:40
204 查看
数学运算 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 任务
def gcd(a,b): if(b==0): return a return gcd(b,a%b) 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 __sub__(self, r): return Rational(self.p * r.q - self.q * r.p, self.q * r.q) def __mul__(self, r): return Rational(self.p * r.p, self.q * r.q) def __div__(self, r): return Rational(self.p*r.q,self.q*r.p) def __str__(self): g=gcd(self.p,self.q) return '(%d/%d)' %(self.p/g,self.q/g) __repr__ = __str__ r1 = Rational(1, 2) r2 = Rational(1, 4) print r1 + r2 print r1 - r2 print r1 * r2 print r1 / r2
能够输出想要的结果。
相关文章推荐
- 关于SmartForm和ScriptForm的输出格式设置说明
- 关于SmartForm和ScriptForm的输出格式设置说明
- [收藏]ASP输出Excel文本格式确定 | asp设置Excel单元格类型为文本
- 输入输出格式标记位、格式常量、格式设置函数
- easyui的datebox和datetimebox的设置输出日期的格式
- 输入输出格式标记位、格式常量、格式设置函数
- smartform输出格式设置
- 在Java中获取时间,输出格式设置和与String的转换
- 关于SmartForm和ScriptForm的输出格式设置说明
- 关于SmartForm和ScriptForm的输出格式设置说明(转载)
- SmartForm和ScriptForm的输出格式设置说明
- 谈谈C++中如何设置输出格式
- 谈谈C++中如何设置输出格式
- 关于SmartForm和ScriptForm的输出格式设置说明(转载)
- 如何设置cout的输出格式(转)
- 关于SmartForm和ScriptForm的输出格式设置说明
- 关于用dom4j实现xml文件输出时格式设置的发现
- 关于SmartForm和ScriptForm的输出格式设置说明
- smartform输出格式设置
- 在cmd环境下输出的中文字为乱码时时,只要将文件格式设置为ANSI编码就可以了