我对以下问题感到困惑:
这样做是可行的:
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虽然我认为两者都是完全等同的。
有人能把灯扔到这个上面吗?
发布于 2014-09-21 16:47:49
不是的。在……里面
a, b = b, a%b右侧首先计算为元组,因此a%b是使用a的原始值计算的。相比之下,
a = b; b = a%ba%b是在a被分配给b的值之后计算出来的,它将一个不同的结果分配给b。
https://stackoverflow.com/questions/25961488
复制相似问题