为了账号安全,请及时绑定邮箱和手机立即绑定

python3.5,输出结果怎么变成浮点数了?

源码如下:

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 __truediv__(self, r):

        return Rational(self.p*r.q,self.q*r.p)


    def __str__(self):

        g = gcd(self.p,self.q)

        return ('%s/%s'%(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)

输出结果如下:

http://img1.sycdn.imooc.com//59b6508200018f2212160632.jpg

正在回答

3 回答

__str__() 改一下return语句为下面的:

 return ('%s/%s'%(self.p//g,self.q//g))

0 回复 有任何疑惑可以回复我~

3.x版本中除法得到的都是浮点数

0 回复 有任何疑惑可以回复我~

是不是跟python3.x中的truediv有关。查了一下,3.x版本是真除法,管操作数的类型,都会返回包含任何余数的浮点结果。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255532    人
  • 解答问题       3038    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

python3.5,输出结果怎么变成浮点数了?

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号