我不明白为什么在以下代码中未定义“head”,我正在尝试使用Accumulate模式来获取一些数字列表。
def sum(items):
if (items == None): #base case
return 0
else:
return head(items) + sum(tail(items))
def main():
items = (input("give me a list"))
print ("the sum of the list is", sum(items))
main()
答案 0 :(得分:1)
由于head
和tail
是通过向它们传递参数来调用的(items
是两者的参数),所以你应该将它们声明为函数:
def head(items):
# ...
return ...
def tail(items):
# ...
return ...
注意:强>
答案 1 :(得分:0)
def sum(items):
if not items:
return 0
else:
head = lambda x: x[0]
tail = lambda x: x[1:]
return head(items) + sum(tail(items))