Python 类型错误:';功能';对象不可下标
一个非常简单的代码,但是为什么会出现错误Python 类型错误:';功能';对象不可下标,python,python-3.x,recursion,Python,Python 3.x,Recursion,一个非常简单的代码,但是为什么会出现错误 def sumList(l): if l == []: return 0 else: return sumList[1:] + [l[0]] def main(): l=[3,2,5,3] print(sumList(l)) main() 我想你是有意这么做的: def sumList(l): if l == []: return 0 else:
def sumList(l):
if l == []:
return 0
else:
return sumList[1:] + [l[0]]
def main():
l=[3,2,5,3]
print(sumList(l))
main()
我想你是有意这么做的:
def sumList(l):
if l == []:
return 0
else:
return sumList(l[1:]) + l[0]
def main():
l=[3,2,5,3]
print(sumList(l))
main()
您希望将[1://code>应用于l
,而不是sumList
(sumList
是一个函数)
您还需要添加l[0]
(第一个数字),而不是[l[0]]
(第一个数字的列表)
通过这些更改,程序将打印13
我认为避免在同一个程序中混合使用l
和1
是个好主意 我想你是有意这么做的:
def sumList(l):
if l == []:
return 0
else:
return sumList(l[1:]) + l[0]
def main():
l=[3,2,5,3]
print(sumList(l))
main()
您希望将[1://code>应用于l
,而不是sumList
(sumList
是一个函数)
您还需要添加l[0]
(第一个数字),而不是[l[0]]
(第一个数字的列表)
通过这些更改,程序将打印13
我认为避免在同一个程序中混合使用l
和1
是个好主意 在第5行中,您尝试将函数名用作列表。这不管用。将其替换为输入参数的名称
def sumList(l):
if l == []:
return 0
else:
return l[1:] + [l[0]]
在第5行中,您尝试将函数名用作列表。这不管用。将其替换为输入参数的名称
def sumList(l):
if l == []:
return 0
else:
return l[1:] + [l[0]]
sumList
仅在一个地方定义:它是一个函数。函数是不可下标的。你试着给它下标。因此,您会收到一个错误,告诉您该函数不可下标。解决方法是不要尝试为函数下标。sumList
仅在一个地方定义:它是一个函数。函数是不可下标的。你试着给它下标。因此,您会收到一个错误,告诉您该函数不可下标。解决方法是不要尝试为函数下标。