关于Python当中式子f1, f2 = f2, f1+f2 能否拆分成 f1 = f2 ; f2 = f1 + f2的问题

f1, f2 = f2, f1 + f2 不能拆成 f1 = f2 ; f2 = f1 + f2 。
原因:f1 = f2 ; f2 = f1 + f2 中第二个式右边的 f1 会使用第一个式子赋值更新后的值,但是f1, f2 = f2, f1 + f2 用的是初始赋值,也即这个式子 f2 的结果不依赖于 f1 = f2 计算的 f1 值,而是使用的 f1 = f2 赋值以前给 f1 的值。简单的说就是f1, f2 = f2, f1 + f2 中右边的值全是这个式子计算以前的初始值,但是拆成两个语句的话出现了先后执行的顺序问题,此时的情况就完全不一样了。

如果是f1, f2 = f2, f3 + f2这样的式子,也即拆分后的执行的第二个式子 f2 = f3 + f2 的运行结果不会受到第一个式子 f1 = f2执行结果的影响,那么拆成 f1 = f2 ; f2 = f3 + f2 是完全没问题的。

用Python写个实际的例子来进行说明

f1 = 1
f2 = 2
f1, f2 = f2, f2 + f1
print(f1, f2)


f1 = 1
f2 = 2
f1 = f2
f2 = f2 + f1
print(f1, f2)

上式的运行结果为:

2 3
2 4
显然,通过实际程序的运行结果可知,f1, f2 = f2, f1 + f2 也是不能拆成 f1 = f2 ; f2 = f1 + f2 的。如果我的回答对你有帮助,那么我很庆幸你在看这篇小博客的时候并不算是浪费你的时间。赠人玫瑰,手留余香,祝你生活愉快。

猜你喜欢

转载自blog.csdn.net/TomorrowAndTuture/article/details/85050332
f2