作者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://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: assignment是怎麼回事 02/07 15:40
→ bigpigbigpig: 程式二的 a,b=a.a+b 若不改成 a,b = b,a+b 也不正確 02/07 17:07