a , b = b , a + b
这个是不是等价于
a = b
b = a + b
测试起来好像不是,那是怎么解释的? 是求斐波那契函数中的:
def fab(max):
n,a,b = 0,0,1
while n < max:
print b
a , b = b , a+b
n = n + 1
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
相当于
少使用了存储单元tmp
不等价
中后面
a+b中的a还是原来的a,不是把b的值赋值给a之后的a。和
不同。
属于奇技淫巧,少打几个字,但是有坑。
python 的
和以下代码
是不一样的实现。
在 python 里一切皆对象,等号右边其实是省略了括号的
tuple,因此上述代码应该如此理解:(b, a)是一个新生成的 tuple 对象, tuple可以进行特殊赋值,将里面的元素赋值给多个变量, 从而实现了a, b 的交换。因此,这也就是为什么
a , b = b , a + b后面a+b中的a还是原来的a的原因。楼主在看python高级编程把...今天我也开始刷这本书了.发现了这个问题.突然想到了有这麽一个帖子.收藏了.