价值安排

时间:2015-07-19 04:08:07

标签: python python-3.x

我有一个关于","的问题。什么是\ n 在python 3. +

#There is technically a "\n" in between this two values (BA & BB)
BA=6 
BB=90

但不应该被解释为与此相同吗?

BA,BB = 6,90

正确?我之所以这么说是因为 while循环正在解释它。

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

不一样:

a=0
b=1    
while b <10:
    print(b)
    a=b
    b = a+b

第一个 while循环给我一个Fibonacci输出,但第二个 while循环给了我一个重复。 输出第二个while循环:

1 
2 
4 
8 
4 

有人可以解释一下吗?

1 个答案:

答案 0 :(得分:0)

这是因为ab的值会在语句末尾更新,这意味着您可以将b的值传递给a之前它变为a+b

在第一个循环中,会发生以下情况:

1    a becomes b=1 & b becomes a+b=0+1=1
2    a becomes b=1 & b becomes a+b=1+1=2
3    a becomes b=2 & b becomes a+b=1+2=3
4    a becomes b=3 & b becomes a+b=2+3=5

但是,在第二个循环中,这些事件是分开的,所以:

1    a becomes b=1
     b becomes a+b=1+1=2
2    a becomes b=2
     b becomes a+b=2+2=4
3    a becomes b=4
     b becomes a+b=4+4=8

正如您所看到的,在第二个循环的每次迭代中,您实际上只是将b的值加倍。如果你想避免在同一行上设置两个变量,你需要定义一个第三个变量,它等于a的旧值:

a=0
b=1    
while b <100:
    print(b)
    old_a = a;
    a=b
    b = old_a+b

此循环将按预期工作。