tag*_*oma 3 python syntax loops python-2.7
我对以下内容感到困惑:
这有效:
a, b = 1071, 1029
while(a%b != 0):
a, b = b, a%b
Run Code Online (Sandbox Code Playgroud)
但是,以下代码段返回ZeroDivisionError错误消息:
a, b = 1071, 1029
while(a%b != 0):
a = b; b = a%b
Run Code Online (Sandbox Code Playgroud)
虽然我预计两者都是完全相同的.
有人可以对此嗤之以鼻吗?
che*_*ner 12
不,在
a, b = b, a%b
Run Code Online (Sandbox Code Playgroud)
右侧首先被评估为元组,因此a%b
使用原始值计算a
.相反,
a = b; b = a%b
Run Code Online (Sandbox Code Playgroud)
a%b
在分配了值之后 计算,a
为其分配b
不同的结果b
.