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

来源:4-4 Python类的数学运算

o0牛魔王0o

2021-03-29 12:06

# 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回答

  • ChaosYX
    2021-11-12 09:48:36

    import sys

    print(sys.version)

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

    下载视频          
  • 小小苏苏
    2021-05-13 09:27:11

     def __truediv__(self,r):

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



  • 禾希禾希
    2021-04-15 18:36:21

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

      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)

Python3 进阶教程(新版)

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

41956 学习 · 236 问题

查看课程

相似问题