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

为什么地板除的结果不对呢

# Enter a code

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

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


    def __str__(self):

        return '{}/{}'.format(self.p,self.q)

a1 = Rational(1,5)

a2 = Rational(4,5)

print(a1 + a2)

print(a1 - a2)

print(a1*a2)

print(a1/a2)

print(a1//a2)


正在回答

3 回答

import sys

print(sys.version)

可以查看python版本不是3.X哦

下载视频          
0 回复 有任何疑惑可以回复我~

 def __truediv__(self,r):

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



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

地板除是向下取整,你的代码里是普通除法

  def __div__(self,r):

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

    def __floordiv__(self,r):

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

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

举报

0/150
提交
取消

为什么地板除的结果不对呢

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信