zoukankan      html  css  js  c++  java
  • python重载四则运算符及输出格式设置

    数学运算
    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

    能够输出想要的结果。

  • 相关阅读:
    团队开发冲刺第二十天
    团队开发冲刺第十九天
    第十六周进度总结
    学期课后个人总结
    用户场景分析
    第十五周进度总结
    对正在使用的输入法进行评价
    java中实现客户姓名添加和显示
    指定查找区间,查找学生姓名并显示是否修改成功
    linux下如何修改文件的权限chmod
  • 原文地址:https://www.cnblogs.com/superxuezhazha/p/5793436.html
Copyright © 2011-2022 走看看