我的任務是在Python中創建一個遞歸函數,它將一個列表和一個值爲0的輸入作爲輸入,然後將列表中的所有奇數相加並返回該值。下面是我有的代碼,並且它一直返回列表索引超出範圍。無論我做什麼,我都無法讓它工作。Python中的遞歸函數在列表中添加奇數值
def addodds2(x,y):
total=0
a=x[y]
while y<len(x):
if a%2!=0:
total+=a
return(addodds2(x,y+1))
else:
return(addodds2(x,y+1))
return(total)
print(addodds2([3,2,4,7,2,4,1,3,2],0))
由於它是遞歸的,你可能不想要一個循環。想想你的基本情況。你什麼時候只返回一個值,而你什麼時候需要返回一個包含下一個遞歸調用結果的值。 – 2013-04-25 19:33:29
我希望這是作業,因爲使用遞歸這在現實生活中會很糟糕。 – cmd 2013-04-25 19:39:58