好吧,所以我是編程新手,我正在參加計算機科學的入門課程。我們正在使用Python 3.6,並且有一個我們的教授告訴我們要做的練習。爲什麼「返回0」在我的代碼中起作用?
基本上我們必須編寫一個函數,使輸入是一個列表,我們必須返回值的總和。如果有一個列表作爲我們初始列表的一個元素,我們必須對其中的所有數字進行求和。
我的一個朋友幫我和代碼工作,但我不明白爲什麼它會工作。
下面的代碼:
def f(L):
sum = 0
if len(L)==0:
return 0
if isinstance(L[0], int):
sum = sum + L[0]
elif isinstance(L[0], list):
sum = sum + f(L[0])
L.remove(L[0])
return sum + f(L)
和輸入的一個例子是:
print(f([[99777634], [97179966, 91871251], [99887343, 97636420], [92431849]]))
有人可以解釋我是如何「迴歸0」的作品,爲什麼它的工作原理?
我不確定,我理解這個問題。該代碼部分通過檢查列表是否爲空(其長度爲0)並返回0來工作。這是正確的,因爲空列表的總和實際上是0. – sepp2k
看起來像遞歸基本情況,因此您可以終止遞歸。也看起來不是一個很好的方法來做你正在做的事情,因爲你可以迭代列表並計算總和而不使用標記。 – birryree