我想在python中添加两个分数
如果输入1/4 + 1/4,我期待1/2结果
我使用__add__
方法构建了一个分数类,用于添加
from fractions import gcd
class fraction:
def __init__(self, numerator, denominator):
self.num = numerator
self.deno = denominator
def __add__(self, other):
self.sumOfn = self.num + other.num
self.sumOfd = gcd(self.deno,other.deno)
return(self.sumOfn, self.sumOfd)
print(fraction(1,4)+fraction(1,4))
然而我输出2,4,实际上是1/2,只是没有简化。我怎么能解决这个问题?
答案 0 :(得分:4)
简化分数的一般方法是找到分子和分母的greatest common divisor,然后将它们除以它
答案 1 :(得分:3)
from fractions import Fraction
print(Fraction(1,4)+Fraction(1,4))
答案 2 :(得分:0)
这有效:
班级分数:
def __init__(self, numerator, denominator):
self.num = numerator
self.deno = denominator
def __add__(self, other):
self.sumOfn = self.num + other.num
self.sumOfd = gcd(self.deno,other.deno)
num=gcd(self.sumOfn,self.sumOfd)
res_num=self.sumOfn/num
res_den=self.sumOfd/num
if res_num==res_den:print res_num
else:print res_num,"/",res_den
(分数(1,4)+分数(1,4))