作者EijiHoba (Feel)
看板Python
标题[问题] Fibonacci 范例
时间Mon Feb 2 12:35:52 2015
我的程式
def fib(n):
'Fibonacci Demo'
a=0
b=1
while a < n:
print a,
a=b
b=a+b
fid(2000)
执行结果
0 1 2 4 8 16 32 64 128 256 512 1024
https://docs.python.org/2/tutorial/controlflow.html 范例
def fib(n):
'Fibonacci Demo'
a,b=0,1
while a < n:
print a,
a,b=a.a+b
fid(2000)
执行结果居然不同
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597
请问哪里写错
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.135.40.207
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1422851756.A.561.html
1F:→ kkkor: 先弄懂 Fibonacci 再看看 a=b 与 b=a+b。 02/02 13:04
2F:推 mars90226: mass assignment时的顺序不能用拆开来assign来模拟 02/02 13:18
3F:→ mars90226: 他会记住之前的值,可是你分开assign,原本的值就不见 02/02 13:18
4F:→ mars90226: 所以a, b = b, a + b不等於a = b; b = a + b 02/02 13:19
6F:→ goldflower: assignment是怎麽回事 02/07 15:40
7F:→ bigpigbigpig: 程式二的 a,b=a.a+b 若不改成 a,b = b,a+b 也不正确 02/07 17:07