哪里错了?这样不行吗?def square_of_sum(L): a=0 while L[a]!=None: b=L[a]*L[a] sum=sum+b a=a+1 return sumprint square_of_sum([1, 2, 3, 4, 5])print square_of_sum([-5, 0, 5, 15, 25])
1 回答
习惯受伤
TA贡献885条经验 获得超1144个赞
有以下几个问题:
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])
添加回答
举报
0/150
提交
取消