[問題] Fibonacci 範例

作者: EijiHoba (我要好工作)   2015-02-02 12:35:52
我的程式
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
請問哪裡寫錯
作者: kkkor (梅林)   2015-02-02 13:04:00
先弄懂 Fibonacci 再看看 a=b 與 b=a+b。
作者: mars90226 (火星人)   2015-02-02 13:18:00
mass assignment時的順序不能用拆開來assign來模擬他會記住之前的值,可是你分開assign,原本的值就不見所以a, b = b, a + b不等於a = b; b = a + b
作者: goldflower (金色小黃花)   2015-02-07 15:40:00
http://ppt.cc/9Xnr 看這篇瞭解一下python的 tupleassignment是怎麼回事
作者: bigpigbigpig (To littlepig with love)   2015-02-07 17:07:00
程式二的 a,b=a.a+b 若不改成 a,b = b,a+b 也不正確

Links booklink

Contact Us: admin [ a t ] ucptt.com