看板 Python 關於我們 聯絡資訊
我的程式 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
kkkor: 先弄懂 Fibonacci 再看看 a=b 與 b=a+b。 02/02 13:04
mars90226: mass assignment時的順序不能用拆開來assign來模擬 02/02 13:18
mars90226: 他會記住之前的值,可是你分開assign,原本的值就不見 02/02 13:18
mars90226: 所以a, b = b, a + b不等於a = b; b = a + b 02/02 13:19
goldflower: http://ppt.cc/9Xnr 看這篇瞭解一下python的 tuple 02/07 15:40
goldflower: assignment是怎麼回事 02/07 15:40
bigpigbigpig: 程式二的 a,b=a.a+b 若不改成 a,b = b,a+b 也不正確 02/07 17:07