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):
????????if?self.p>self.q:
????????????miner=self.q
????????????maxer=self.p
????????else:
????????????miner=self.p
????????????maxer=self.q
????????a,b=judegement(miner,maxer)
????????if?self.p>self.q:
????????????return?'%s/%s'?%(b,a)
????????else:
????????????return?'%s/%s'?%(a,b)
????def?judgement(miner,maxer):
????????for?i?in?range(miner+1):
????????????if?maxer%i==0:
????????????????maxer=maxer/i
????????????????miner=miner/i
????????????????return?judegment(miner,maxer)?
????????return?miner,maxer
????__repr__?=?__str__
r1?=?Rational(1,?2)
r2?=?Rational(1,?4)
print?r1?+?r2
print?r1?-?r2
print?r1?*?r2
print?r1?/?r2題目是:Rational類雖然可以做加法,但無(wú)法做減法、乘方和除法,請(qǐng)繼續(xù)完善Rational類,實(shí)現(xiàn)四則運(yùn)算。自己想的化簡(jiǎn)過(guò)程哪出錯(cuò)啊~,幫我看看,謝謝慕友啦
添加回答
舉報(bào)
0/150
提交
取消