为了账号安全,请及时绑定邮箱和手机立即绑定

gcd为什么放置在前面,这个函数的详细用法是什么?约分吗?

def gcd(a, b):

    if b == 0:

        return a

    return gcd(b, a % b)#这其中为何要进行这一项?

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):

        g = gcd(self.p,self.q)

        return '%s/%s' % (self.p / g, self.q / g)#为什么??

    __repr__ = __str__

r1 = Rational(1, 2)

r2 = Rational(1, 4)

print r1 + r2

print r1 - r2

print r1 * r2

print r1 / r2


正在回答

2 回答

不管是写到include文件里还是直接写在当前文件里,函数要在调用地点的上方写。

在这里定义的gcd函数确实是约分的作用。例如本来是  2/8  约分之后变成 1/4

0 回复 有任何疑惑可以回复我~
#1

墨客0011 提问者

非常感谢!
2015-10-19 回复 有任何疑惑可以回复我~
#2

CharlesLvm

你说的不对,写在下方也是可以正常执行的
2016-03-05 回复 有任何疑惑可以回复我~
#3

甲壳虫爱上了夏天

def gcd(a, b): if b == 0: return a return gcd(b, a % b) 如果是self.p=6 self.q=8 那么函数的返回值gcd(b, a % b)怎么计算出来的是2? 不懂这个返回值的意思
2016-08-12 回复 有任何疑惑可以回复我~
#4

冷的太明显 回复 CharlesLvm

写在类里面会报错
2016-11-14 回复 有任何疑惑可以回复我~
查看1条回复

这个函数用来求a和b的公约数

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255533    人
  • 解答问题       3038    个

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

进入课程

gcd为什么放置在前面,这个函数的详细用法是什么?约分吗?

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号