我很抱歉,因为这可能是一个常见的问题,但我想我正在寻找一个在其他主题中找不到的非常具体的答案。基本上,我对加数字的流程感到相当困惑。这里有两个相似的代码,它们以不同的方式计算数字。对此有什么简单的解释吗?
>>> a = 0
>>> b = 1
>>> while b <1000:
print b
a, b = b, a+b
1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987
>>> a =0
>>> b=1
>>> while b<1000:
print b
a = b
b = a+b
1,2,4,8,16,32,64,128,256,512发布于 2012-01-11 11:55:22
区别在于交换时的值是什么
a, b = b, a+b
将a设置为b,并将a设置为a+b,但交换是相对同时进行的,因此这是不符合顺序的,即b中的更改不会考虑a是先更改的。
在第二个示例中
a = b
b = a+b这些值已更改,并且第二条语句遵循第一条语句的更改
发布于 2012-01-11 11:56:40
交换中存在优先级差异。在第一个示例中,您指定:a=1 b=1
在第二个示例中,您指定:a=1 b=2
为了实现与第一个示例相同的操作顺序,您必须使用temp变量。
发布于 2012-01-11 11:57:29
赋值在第一个代码示例中同时发生,在第二个代码示例中连续发生,导致不同的答案。
https://stackoverflow.com/questions/8813907
复制相似问题