python的 a,b=b,a+b 和 a=b b=a+b 的区别

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

n,a,b=0,0,1
while n<6:
print(b)
a=b
b=a+b
n=n+1
输出结果不一样

区别就是:赋值运算,先计算赋值号(也就是=号左边的,再赋值) 

1、a, b = b, a+b 这种赋值

先计算等值 右边 就是 b=1 a+b=1

再赋值给a和b,那么 a=1, b=1

2、a = b b = a+b

此时 b=1, 那么a=1 那么最后 b=2

a, b = b, a+b 这个表达式的意思就是说,先计算=号的右边b的值,a+b的值,算好了,然后再分别赋值给a 和b就可以了。

扩展资料:

Python在执行时,首先会将.py文件中的源代码编译成Python的byte code(字节码),然后再由Python Virtual Machine(Python虚拟机)来执行这些编译好的byte code。这种机制的基本思想跟Java,.NET是一致的。

然而,Python Virtual Machine与Java或.NET的Virtual Machine不同的是,Python的Virtual Machine是一种更高级的Virtual Machine。这里的高级并不是通常意义上的高级,不是说Python的Virtual Machine比Java或.NET的功能更强大,而是说和Java 或.NET相比,Python的Virtual Machine距离真实机器的距离更远。

或者可以这么说,Python的Virtual Machine是一种抽象层次更高的Virtual Machine。基于C的Python编译出的字节码文件,通常是.pyc格式。

除此之外,Python还可以以交互模式运行,比如主流操作系统Unix/Linux、Mac、Windows都可以直接在命令模式下直接运行Python交互环境。直接下达操作指令即可实现交互操作。

参考资料:Pythony运算规则  百度百科

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-11

赋值运算,先计算赋值号(也就是=号左边的,再赋值)

那么

a, b = b, a+b
# 这种赋值,先计算等值 右边 那么 b=1 a+b=1
# 再赋值给a和b,那么 a=1, b=1

而,下面的

a = b
# 此时 b=1, 那么a=1
b = a+b
# 那么 b=2

明白了吧。

本回答被提问者和网友采纳
第2个回答  2014-12-19
a,b=b,a+b 相当于:

temp=b #先保存b的原值
b=a+b #赋b新值
a=temp #将b的原值赋予a

实际就是C语言中的数据交换过程,也可理解为先计算右边后赋值。
第3个回答  2018-01-01
a,b=1,3 #就是把1赋值给a,把3赋值给b. 等价于a=1,b=3,这是python中赋值语法
a,b=b,a+b #就是a=b,b=a+b,同样的赋值方式。等价于a=b,b=a+b
第4个回答  2020-09-22
这属于赋值语句,有隐藏简化用法
a,b = b , a+b 相当于
t=(a,a+b) # t是一个tuple
a=t[0]
b=t[1]
自己去编译看看返回值结果是不是这样
相似回答