【发布时间】:2017-06-15 14:31:04
【问题描述】:
我想知道为什么这段代码给了我两种不同的解决方案:
a = 0
b = 1
solution = 0
while b <= 4000000:
if b % 2 == 0:
solution += b
a, b = b, a + b
print(solution)
在这种情况下,solution 是 4613732。但是当我尝试这段代码时:
a = 0
b = 1
solution = 0
while b <= 4000000:
if b % 2 == 0:
solution += b
a = b
b = a + b
print(solution)
solution 是 4194302
有什么建议吗?
【问题讨论】:
-
a, b = b, a + bVSa = b和b = a + b -
请记住,RHS 总是首先得到评估,您会发现这并不奇怪。
-
使用打印语句调试和理解代码
-
第一个是同时赋值,第二个是过程式,b 获取更新后的值。
-
@yosemite_k:请注意,分配不是同时分配的,因为它们是同时分配的,甚至没有一个人能够相互影响。作业是从左到右完成的。
标签: python variables fibonacci