黑翼大魔 发表于 2018-4-5 09:41:20

关于函数返回值的问题

看了一道求最大公约数的题目,按照要求写了段
def gcd(x,y):
    while y:
      i = x % y
      x = y
      y = i
    return x
print(gcd(233,123))

但我看了百度百科上面,还有一种是非迭代法的,似乎很简练,
#非递归

def gcd(x, y):
   
while y:
         
    x, y = y, x%y
   
return x
不过循环里面我看不明白,有哪位老师可以简单的讲解下吗?thanks

alltolove 发表于 2018-4-5 09:54:26

这两种都是用迭代的方法,只不过第二种是简写

BngThea 发表于 2018-4-5 09:55:43

python中支持直接交换两个数,比如
a,b=b,a
所以下面那种写法就是上面那种写法的简写形式

黑翼大魔 发表于 2018-4-5 10:26:01

alltolove 发表于 2018-4-5 09:54
这两种都是用迭代的方法,只不过第二种是简写

原来如此,谢谢了
页: [1]
查看完整版本: 关于函数返回值的问题