2024-06-25 06:27:22 发布
网友
我发现了一个最大的共同点:
def gcd(x,y): while y: x, y = y, x % y return x
我不明白我们所说的while y是什么意思,因为y是一个整数。它是如何工作的?此外,x, y = y, x % y行向代码添加了什么?在
while y
y
x, y = y, x % y
只要while y不为零,表达式while y将迭代。在
另一条线以原子方式执行两个操作:
new_x <-- old_x new_y <-- old_x mod old_y
这将对GCD执行欧几里德算法,元组分配避免了对临时变量的需要。在
对于while,请阅读以下内容:http://docs.python.org/reference/compound_stmts.html#the-while-statement
while
它说“这会反复测试表达式,如果是真的,则执行第一个套件
现在的问题是:什么是真的?在
读这个:http://docs.python.org/library/functions.html#bool
然后读这个:http://docs.python.org/library/stdtypes.html#truth-value-testing
非零值为真。零是假的。在
What does the line "x, y=y, x%y" add to the code?
作为一个问题,没有什么意义。”添加到代码中“?什么?哪个部分令人困惑?在
读这个:http://docs.python.org/reference/simple_stmts.html#assignment-statements
如果目标列表是以逗号分隔的目标列表:该对象必须是一个iterable,其项数必须与目标列表中的目标数相同,并且这些项从左到右分配给相应的目标
对于整数“%”运算符,请阅读以下内容:http://docs.python.org/library/stdtypes.html#numeric-types-int-float-long-complex
如果你的问题更具体一点会有帮助。很难按要求回答。在
循环在y==0时停止。
y==0
循环体同时将y分配给x,并将{}分配给y。否则,您将需要一个临时变量来执行这两个赋值,因为其中一个赋值将被覆盖。
x
只要
while y
不为零,表达式while y
将迭代。在另一条线以原子方式执行两个操作:
这将对GCD执行欧几里德算法,元组分配避免了对临时变量的需要。在
对于
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
非零值为真。零是假的。在
作为一个问题,没有什么意义。”添加到代码中“?什么?哪个部分令人困惑?在
读这个:http://docs.python.org/reference/simple_stmts.html#assignment-statements
如果目标列表是以逗号分隔的目标列表:该对象必须是一个iterable,其项数必须与目标列表中的目标数相同,并且这些项从左到右分配给相应的目标
对于整数“%”运算符,请阅读以下内容:http://docs.python.org/library/stdtypes.html#numeric-types-int-float-long-complex
如果你的问题更具体一点会有帮助。很难按要求回答。在
循环在
y==0
时停止。循环体同时将}分配给
y
分配给x
,并将{y
。否则,您将需要一个临时变量来执行这两个赋值,因为其中一个赋值将被覆盖。相关问题 更多 >
编程相关推荐