哪里错了?这样不行吗?

哪里错了?这样不行吗?

def square_of_sum(L):

    a=0

    while L[a]!=None:

        b=L[a]*L[a]

        sum=sum+b

        a=a+1

    return sum

print square_of_sum([1, 2, 3, 4, 5])

print square_of_sum([-5, 0, 5, 15, 25])


Quentin3824726
浏览 1475回答 1
1回答

习惯受伤

有以下几个问题:1、你在while循环中使用了没有声明的变量,所以应该在函数开始时就声明一下2、L[a]!=None 这个条件多余,为什么是多余呢?你直接判断 while L[a] 不就可以了吗?3、使用L[a]判断时,有个问题,如果a的值大于元素索引了,就出错了,所以判断条件应该改成:while a<len(L) and L[a]:正确代码如下:# coding=utf-8 def square_of_sum(L):     sum=0     a=0     while a<len(L) and L[a]:         b=L[a]*L[a]         sum=sum+b         a=a+1     return sum print square_of_sum([1, 2, 3, 4, 5]) print square_of_sum([-5, 0, 5, 15, 25])
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python