Python:a,b=1,2,a=1;b=2严格等效?
我对以下几点感到困惑: 这项工作:Python:a,b=1,2,a=1;b=2严格等效?,python,python-2.7,loops,syntax,Python,Python 2.7,Loops,Syntax,我对以下几点感到困惑: 这项工作: a, b = 1071, 1029 while(a%b != 0): a, b = b, a%b 但是,以下代码段返回一条ZeroDivisionError错误消息: a, b = 1071, 1029 while(a%b != 0): a = b; b = a%b 虽然我希望两者完全相同 谁能把灯打开吗?不,请进来 a, b = b, a%b 首先将右侧计算为元组,因此使用a的原始值计算a%b。相比之下 a = b; b = a%b
a, b = 1071, 1029
while(a%b != 0):
a, b = b, a%b
但是,以下代码段返回一条ZeroDivisionError错误消息:
a, b = 1071, 1029
while(a%b != 0):
a = b; b = a%b
虽然我希望两者完全相同
谁能把灯打开吗?不,请进来
a, b = b, a%b
首先将右侧计算为元组,因此使用a
的原始值计算a%b
。相比之下
a = b; b = a%b
a%b
是在a
分配了b
的值后计算的,为b
分配了不同的结果 为什么你在标题中问了一个问题,而在正文中问了一个完全不同的问题?这是同一个问题,它们不是同一个问题,但只有当你了解a,b=1,2
的工作原理时,这一点才明显,这就排除了问这个问题:)