今天无意中看到这个代码
a, b = b, a+b
说实话我是懵逼了。理解了大概半个小时才基本了解了他的原理。
比如我们在做一个循环的时候,我要做到的效果是:
两个数一直相加得出结果来了之后再次相加:
例如:1,2这两个数相加等于3
第二次相加就是2,3两个数相加等于5
第三次就是3,5两个数相加等于8
怎么让python结算出来呢,
还是比较简单的:
a=1
b=2
print(a)
while b<10:
print(b)
m=a
n=b
b=m+n
a=n
这里为什么要引入m和n两个变量呢,因为不引入没办法计算:比如:
a=1
b=2
print(a)
while b<10:
print(b)
a=b#因为第二轮是2和3相加,a还是1,所以必须让a=b,也就是a先换成2
b=a+b#但是这里又出错了,因为a已经变成2了,所以b就等于2+2了,就是4了
但是如果把b=a+b放到a前面也不行,因为先加了的话a=b的话a就是3了,也不对,所以必须引入m,n两个变量先把a和b的值存起来才能相加计算。
这个时候
a, b = b, a+b
就比较管用这里的意识啰嗦的讲就是:
a=1,b=2
首先可以简化的写成a,b=1,2就是分别赋值
那么a, b = b, a+b,也是分别赋值,而且没有先后顺序的赋值,这里的意识就是a=b所以a=2.b=a+b(这里的a还是没有运算之前的a就是=1)就相当于b=1+2=3
所以他是先把右边的计算掉,然后分别赋值给左边。我讲这么啰嗦,应该都听懂了。
反正我勉强懂了!