为了账号安全,请及时绑定邮箱和手机立即绑定

哪里错了?这样不行吗?

哪里错了?这样不行吗?

Quentin3824726 2017-03-18 22:05:49
哪里错了?这样不行吗?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])


查看完整回答
1 反对 回复 2017-03-19
  • Quentin3824726
    Quentin3824726
    请问一下,while L[a]的作用是什么?直接while a<len(L):这样不行吗?
  • 习惯受伤
    习惯受伤
    and L[a] 可以写为 and L[a] != None,也可以直接使用 while a<len(L): 如果你不需要检查 L[a] 的值
  • 1 回答
  • 0 关注
  • 1474 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信