我正在使用的代碼python中的無限循環 - 爲什麼?
fibList=[1]
def fib(n1, n2):
n3 = n1+n2
n1=n2
n2=n3
num1=1
num2=2
while(num2<4000000):
fib(num1,num2)
if (num2%2==0):
fibList.append(num2)
total = sum(fibList)
print total
在網上編譯器,repl.it.它正在進行並且沒有給出解決方案,因此我在fib
函數的定義中的n3=
行的正下方鍵入了行print n3
。它一次又一次地給了3,它在我能夠停止該程序之前崩潰了。所以很顯然,某處有某種無限循環(至少,顯然在我的腦海裏,我想這不可能是一個無限循環,但我確定它是這樣的)。問題在哪裏。我不明白爲什麼會有一個無限循環。
順便說一下,這不是一個家庭作業問題,而是我爲了樂趣而做的一個問題。函數fib
應該計算斐波納契數,第二部分將偶數個分離成不到400萬,然後計算總和。
我想知道的是無限循環進入的地方,我可以做些什麼來解決它。謝謝!
請修正您的代碼段中的縮進 – mic4ael
您要更改循環中num2的值嗎? – UnholySheep
調用'fib' **不會**在函數體外改變n1和n2的值。 –