for i in range(len(L)): 请问哪里错了呢?

来源:7-3 Python之编写函数

文子末

2017-01-15 17:00


def square_of_sum(L):
    sum = 0
    for i in range(len(L)):
        sum += L(i)*L(i)
    return sum   
print (square_of_sum([1, 2, 3, 4, 5]))

请问哪里错了呢?


写回答 关注

4回答

  • 钺箜
    2017-01-15 20:34:52
    已采纳

    同楼上

    IDLE提示list对象不可调用

    把L(i)改成L[i]就对了

    用小括号的时候,L被当作一个函数了,而L在这是个list,所以不可调用

    用中括号可以获取list的元素

    参考回答见http://stackoverflow.com/questions/18758186/typeerror-list-object-is-not-callable

    http://img.mukewang.com/587b6bd60001fc8103610286.jpg

    文子末

    非常感谢您的解答!

    2017-01-16 10:43:00

    共 1 条回复 >

  • nax_am
    2017-07-10 12:27:19
    def sum_of_square(seq):
        return sum([i**2 for i in seq])
        
    #是不是会好看一点


  • 慕粉1801356042
    2017-01-15 17:25:18

    是不是这个

    sum += L(i)*L(i)

    sum += L[i]*L[i]

  • 刹那无间
    2017-01-15 17:14:30
    L = [1, 2, 3, 4, 5] 
    # len(L)=5 
    # range(len(L)) = [0, 1, 2, 3, 4]


初识Python

学python入门视频教程,让你快速入门并能编写简单的Python程序

758520 学习 · 8667 问题

查看课程