為什么地板除的結(jié)果不對(duì)呢
# 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)
2021-11-12
import sys
print(sys.version)
可以查看python版本不是3.X哦
2021-05-13
?def __truediv__(self,r):
? ? ? ? return Rational(self.p*r.q,self.q*r.p)
2021-04-15
地板除是向下取整,你的代碼里是普通除法
? 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)