請原諒任何錯誤,因爲這是我的第一篇文章。Python - 運行代碼結束(迭代?)只能運行一次
我是一名計算機專業的學生,我錯過了幾個星期的教學,所以我沒有爲我的任務做好準備。我正在製作一個需要能夠進行多次計算的人口模型,然後將每次計算的結果添加到相應的列表中。
雖然每次添加到列表中,但我真的無法獲得代碼一遍又一遍地運行(這是否稱爲迭代?)。
據我所知,這是代碼中有問題的一點,我在智慧的結尾試圖讓它工作!
for x in (0, numberGens):
juvNew = aduOverGens[-1]*birthRate
juvOverGens +=("Gen ", x+1, ": ", juvNew)
print (juvOverGens)
凡numberGens是是代碼應該重複以上的次數,和aduOverGens是包含數據爲第一代某種類型的個人的預定義列表,並且juvNew是計算的結果,每次都應該添加到列表的末尾。當我使用numberGens作爲10 aduOverGens [-1]爲22和birthRate爲2運行代碼時,我期望看到以下結果:10次打印列表juvOverGens並在每次結束時添加一個額外值,這應該是是aduOverGens的最後一個值的兩倍(在這種情況下每次都是相同的,因爲現在還沒有向aduOverGens添加額外的值)。
然而在實踐中,打印的結果是:
['Gen 0: ', 22.0, 'Gen ', 1, ': ', 44.0]
['Gen 0: ', 22.0, 'Gen ', 1, ': ', 44.0, 'Gen ', 11, ': ', 44.0]
所以這實際上只是印刷開始代(如我所料),然後加入第一代的值(44,如預期),但然後跳過剩下的只是打印最後一代(這是由於我的不同錯誤被標記爲第11代),而不是將列表打印到正確的次數並在最後添加額外的值。
我該如何使這項工作能夠在列表中打印正確的代數,而不是在那裏錯過2-10?另外,作爲一個側面的問題,我可以停止使用「Gen」,1,':',[value]之間的逗號和空格來打印列表嗎?
對不起,這樣一個漫長的散文,但我有時無法幫助...提前致謝!
運行這段代碼來了解一些正在發生的事情:對於x在(0,numberGens):打印X –
'在X( 0,numberGens):'會迭代兩次。您可能需要在範圍內尋找'for x(0,numberGens)'。 – jDo
你不能讓Crackers弄清楚這一點嗎? :) –