我有一个关于","的问题。什么是\ 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
有人可以解释一下吗?
答案 0 :(得分:0)
这是因为a
和b
的值会在语句末尾更新,这意味着您可以将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
此循环将按预期工作。