Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 类型错误:';功能';对象不可下标_Python_Python 3.x_Recursion - Fatal编程技术网

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
仅在一个地方定义:它是一个函数。函数是不可下标的。你试着给它下标。因此,您会收到一个错误,告诉您该函数不可下标。解决方法是不要尝试为函数下标。