在python中添加两个分数

时间:2015-04-03 02:11:48

标签: python python-3.x

我想在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,只是没有简化。我怎么能解决这个问题?

3 个答案:

答案 0 :(得分:4)

简化分数的一般方法是找到分子和分母的greatest common divisor,然后将它们除以它

答案 1 :(得分:3)

@icodez

所述
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))