什么是';而';在Python中使用整数平均值,那么GCD代码是如何工作的?
我发现了这个最大的共同点代码:什么是';而';在Python中使用整数平均值,那么GCD代码是如何工作的?,python,python-3.x,Python,Python 3.x,我发现了这个最大的共同点代码: def gcd(x,y): while y: x, y = y, x % y return x 我不明白我们所说的是什么意思,因为y是一个整数。它是如何工作的?此外,行x,y=y,x%y向代码添加了什么 当y==0时,循环停止 循环体同时将y分配给x和x%y分配给y。否则,您将需要一个临时变量来执行这两个赋值,因为其中一个赋值将被覆盖 使用 只要y不为零,表达式while y就会迭代 另一行以原子方式执行两个操作: new_x &
def gcd(x,y):
while y:
x, y = y, x % y
return x
我不明白我们所说的是什么意思,因为y
是一个整数。它是如何工作的?此外,行x,y=y,x%y
向代码添加了什么
当y==0
时,循环停止
循环体同时将y
分配给x
和x%y
分配给y
。否则,您将需要一个临时变量来执行这两个赋值,因为其中一个赋值将被覆盖
使用
只要y
不为零,表达式while y
就会迭代
另一行以原子方式执行两个操作:
new_x <-- old_x
new_y <-- old_x mod old_y
new\u x对于而,请阅读以下内容:
它说“这会反复测试表达式,如果是真的,则执行第一个套件
现在的问题是:什么是真的
请阅读以下内容:
然后读一读:
非零值为真。零是假的
“x,y=y,x%y”这一行给代码增加了什么
作为一个问题没有什么意义。“添加到代码中”?什么?什么部分令人困惑
请阅读以下内容:
如果目标列表是以逗号分隔的目标列表:对象必须是一个iterable,其项数必须与目标列表中的目标数相同,并且这些项从左到右分配给相应的目标
对于整数“%”运算符,请阅读以下内容:
如果你的问题更具体一些,会有帮助的。很难回答问题。一个优雅的小算法!这里使用的y
与bool(y)
类似,当且仅当y!=0
。中间一行是python中的一点语法糖,元组解包。@wim:请将这样的答案作为答案发布,以便我们可以正确地投票。
new_x <-- old_x
new_y <-- old_x mod old_y