你好Seamonkey和歡迎來到SO。我很高興你對這個問題投入了更多努力,而不是你最後的:)
我將一步一步地通讀代碼。對於簡單的問題,我覺得這是比較容易不使用的功能,因爲他們可以討厭當一個人有處理全局變量
#This part of the code gets the entire fibonacci sequence
list_of_numbers = []
even_fibs = []
x,y = 0,1 #sets x to 0, y to 1
while y <= 4000000: #Gets numbers till 4 million
list_of_numbers.append(y)
x, y = y, x+y #updates the fib sequence
在這個代碼塊,(你可以把它改成一個函數,如果你願意),我們計算完整的斐波那契數列,高達400萬。我們還創建了兩個列表,list_of_numbers
和even_fibs
。第一個用於存儲整個序列,第二個用於幫助我們存儲偶數。在下一個塊。
coord = 0
for number in range(len(list_of_numbers)):
test_number = list_of_numbers [coord]
if (test_number % 2) == 0:
even_fibs.append(test_number)
coord+=1
這裏我測試了列表list_of_numbers
中的數字是否均勻。如果是,我將它們添加到even_fibs
列表中。你可以在名單上看到here。
print "Normal: ", list_of_numbers #outputs full sequence
print "\nEven Numbers: ", even_fibs #outputs even numbers
print "\nSum of Even Numbers: ", sum(even_fibs) #outputs the sum of even numbers
這只是輸出我們的發現。
既然你似乎喜歡功能,我在這裏添加了代碼。解釋和上面一樣。
#This part of the code gets the entire fibonacci sequence
list_of_numbers = []
even_fibs = []
def fib(list_of_numbers):
x,y = 0,1 #sets x to 0, y to 1
while x+y <= 4000000: #Gets numbers till 4 million
list_of_numbers.append(y)
x, y = y, x+y #updates the fib sequence
return list_of_numbers
def even(list_of_numbers, even_fibs):
coord = 0
for number in range(len(list_of_numbers)):
test_number = list_of_numbers [coord]
if (test_number % 2) == 0:
even_fibs.append(test_number)
coord+=1
return even_fibs
fib(list_of_numbers) #call fib function
even(list_of_numbers, even_fibs) #Call the even function
#Output
print "Normal: ", list_of_numbers
print "\nEven Numbers: ", even_fibs
print "\nSum of Even Numbers: ", sum(even_fibs)
我縮進了你的代碼,使它顯示爲代碼,但看起來像縮進被搞砸了。看看它,並理順它。 - 另外,發佈確切的回溯通常對這些事情有幫助。 – mgilson 2013-03-01 01:38:55
非常感謝。 – seamonkey8 2013-03-01 01:41:20
我將你的代碼複製並粘貼到一個文件中,並使用python 2.7運行它,它工作。 – daveydave400 2013-03-01 01:47:37