在Python中使用整数意义的'while'是什么意思?这个GCD代码如何工作?

Mik*_*mer 6 python python-3.x

我发现了这个最大的共同点代码:

def gcd(x,y):
    while y:
        x, y = y, x % y
    return x
Run Code Online (Sandbox Code Playgroud)

我不明白我们的意思while yy是一个整数.它是如何工作的?此外,该行x, y = y, x % y添加了什么代码?

S.L*_*ott 9

对于while,请阅读:http://docs.python.org/reference/compound_stmts.html#the-while-statement

它说"这反复测试表达式,如果确实如此,则执行第一个套件;"

现在的问题是:什么是真的?

阅读本文:http://docs.python.org/library/functions.html#bool

然后阅读:http://docs.python.org/library/stdtypes.html#truth-value-testing

非零值为True.零是错误的.

行"x,y = y,x%y"添加到代码中的是什么?

作为一个问题,没有什么意义."添加到代码"?什么?什么部分令人困惑?

请阅读:http://docs.python.org/reference/simple_stmts.html#assignment-statements

"如果目标列表是以逗号分隔的目标列表:对象必须是具有与目标列表中的目标相同数量的项目的可迭代项,并且项目从左到右分配给相应的目标".

对于整数'%'运算符,请阅读:http://docs.python.org/library/stdtypes.html#numeric-types-int-float-long-complex

如果您的问题更具体,那将会有所帮助.按要求回答很难回答.