首页 > 解决方案 > 这是2个代码之间的区别

问题描述

似乎相同的代码,但我得到不同的结果

# code1

a = 0
b = 1
for i in range(0, 10):
    print(a)
    a = b
    b = a + b
# code2

a, b = 0, 1
for i in range(0, 10):
    print(a)
    a,b = b, a + b
a = 0
b = 1
for i in range(0, 10):
    print(a)
    a = b
    b = a + b

print()

a, b = 0, 1
for i in range(0, 10):
    print(a)
    a,b = b, a + b

我期望相同的输出

标签: python

解决方案


当您使用代码 1 时:首先a取 的值,b然后b变为a+b,但使用 的新值a

在代码 2 中,当您使用解包时,对 a 和 b 的评估是“同时”的。同时a取取bba+b,但a仍有他的初始值。

希望我清楚!


推荐阅读