python的 a,b=b,a+b 和 a=b b=a+b 的区别
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运算规则 百度百科
赋值运算,先计算赋值号(也就是=号左边的,再赋值)
那么
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
明白了吧。
temp=b #先保存b的原值
b=a+b #赋b新值
a=temp #将b的原值赋予a
实际就是C语言中的数据交换过程,也可理解为先计算右边后赋值。
2018-01-01
a,b=b,a+b #就是a=b,b=a+b,同样的赋值方式。等价于a=b,b=a+b
a,b = b , a+b 相当于
t=(a,a+b) # t是一个tuple
a=t[0]
b=t[1]
自己去编译看看返回值结果是不是这样