我有一個很奇怪的問題。我寫了一個方法,當給定所述集合時,確定描述一組數字的公式的程度。該方法是相當簡單的,我在幾行增加了調試的目的:Python方法返回無
def getdeg(numlist, cnt): #get the degree of the equation describing numlist
count = cnt #initial run should be with cnt as 0
templist = []
for i in range(len(numlist) - 1): #exclude the last item (which doesn't have an item after it)
templist.append(numlist[i+1] - numlist[i]) #append the val of index i+1 minus index i
count += 1
print(templist)
if not allEqual(templist):
print("Not all equal, iterating again")
getdeg(templist, count)
else:
print(count)
return count
def allEqual(numlist):
if len(numlist) == 1:
return True
for i in range(len(numlist) -1):
if not (numlist[i] == numlist[i+1]):
return False
return True
現在,我在一組我知道在一個由3次方程式來描述數字運行此,像這樣:
x = getdeg([2, 8, 9, 11, 20], 0)
print(x)
相當簡單,是嗎?除了當你運行它,它打印出以下幾點:
[6, 1, 2, 9]
Not all equal, iterating again
[-5, 1, 7]
Not all equal, iterating again
[6, 6]
3
None
一切都看起來不錯,直到,直到「無」。那裏在做什麼?我會假設else
條件沒有被執行,但它打印出3很好,所以它顯然是。這也意味着該計劃「知道」count
的價值是什麼,但它並沒有回報正確。有人能夠啓發我,瞭解到底發生了什麼嗎?
啊,天啊。遞歸****我再一次。謝謝! – Max 2014-10-30 14:03:00