[問題] Fibonacci 範例

看板Python作者 (Feel)時間9年前 (2015/02/02 12:35), 編輯推噓2(205)
留言7則, 4人參與, 最新討論串1/1
我的程式 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://www.ptt.cc/bbs/Python/M.1422851756.A.561.html

02/02 13:04, , 1F
先弄懂 Fibonacci 再看看 a=b 與 b=a+b。
02/02 13:04, 1F

02/02 13:18, , 2F
mass assignment時的順序不能用拆開來assign來模擬
02/02 13:18, 2F

02/02 13:18, , 3F
他會記住之前的值,可是你分開assign,原本的值就不見
02/02 13:18, 3F

02/02 13:19, , 4F
所以a, b = b, a + b不等於a = b; b = a + b
02/02 13:19, 4F

02/07 15:40, , 5F
http://ppt.cc/9Xnr 看這篇瞭解一下python的 tuple
02/07 15:40, 5F

02/07 15:40, , 6F
assignment是怎麼回事
02/07 15:40, 6F

02/07 17:07, , 7F
程式二的 a,b=a.a+b 若不改成 a,b = b,a+b 也不正確
02/07 17:07, 7F
文章代碼(AID): #1KplwiLX (Python)