gpt4 book ai didi

Python多变量赋值困惑

转载 作者:行者123 更新时间:2023-12-02 06:18:34 24 4
gpt4 key购买 nike

我第一天使用 Python,并对一个非常短的示例感到困惑。希望有人能解释一下为什么这几个版本之间存在差异。请!

V1:输出为1,1,2,3,5,8

a, b = 0, 1
while b < 10:
print(b)
a, b = b, a+b

V2:输出为1,2,4,8

a, b = 0, 1
while b < 10:
print(b)
a = b
b = a+b

最佳答案

在第一个版本中,首先评估右手,因此在添加它时 b 并未增加。

要单步执行第一个版本进行几次迭代:

1.

a = 0
b = 1
a, b = 1, 1 # b is 1, and a is 0

2.

a = 1
b = 1
a, b = 1, 2 # b is 1 and a is 1

3.

a = 1
b = 2
a, b = 2, 3 # b is 2 and a is 1

在第二个版本中,b 在添加之前就已分配,因此第二个版本的运行方式如下:

1.

a = 0
b = 1
a = b # a is now 1.
b = a + b # b is now 2, because both a and b are 1.

2.

a = 1
b = 2
a = b # a is now 2.
b = a + b # b is now 4, because both a and b are 2.

关于Python多变量赋值困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40425251/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com