python - 这是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
我期望相同的输出
解决方案
当您使用代码 1 时:首先a
取 的值,b
然后b
变为a+b
,但使用 的新值a
。
在代码 2 中,当您使用解包时,对 a 和 b 的评估是“同时”的。同时a
取取b
的b
值a+b
,但a
仍有他的初始值。
希望我清楚!
推荐阅读
- gitlab - 在 Gitlab CI 中创建我的软件的两个版本
- flutter - 在杀死或销毁应用程序后,Flutter Localization 不稳定
- javascript - 承诺过早解决
- mysql - 如何在查询中显示多个结果
- mongodb - 使用 golang 和 mongo 查询名字和姓氏
- ldap - OpenLDAP - 如何授予写访问权限但不修改或删除?有什么选择吗?
- mysql - 从 WordPress 数据库中删除特定的 meta_keys
- android - 有没有办法在 JavaFX 和 android 中将 HTML 转换为图像,从而动态地找到图像相对于 HTML 的高度?
- python - 如何舍入熊猫数据框中的索引值
- node.js - sh: cross-env: command not found(cross-env已经安装)