运行成功输出错误麻烦看一下谢谢了
def square_of_sum(L):
for x in L:
L = [x * x]
return sum (L)
print square_of_sum([1, 2, 3, 4, 5])
print square_of_sum([-5, 0, 5, 15, 25])
def square_of_sum(L):
for x in L:
L = [x * x]
return sum (L)
print square_of_sum([1, 2, 3, 4, 5])
print square_of_sum([-5, 0, 5, 15, 25])
2018-12-01
for循环里面用来存储的变量错误。for循环里第一次执行 “ L = [x * x] ”后,L 里的元素已变为只含有1,相当于这时直接输出 L 得到的是[1],并且,你将return放到了for循环里面,所以“ print square_of_sum([1, 2, 3, 4, 5]) ”,执行后的结果会变为1。
如果你将renturn放到for循环外面,与它对齐,那么“ print square_of_sum([1, 2, 3, 4, 5]) ”,执行后的结果会变为25,因为for循环把 L 遍历完了,最后“ L=[x*x] ”即5*5,故输出结果为25,且此时 L 里的元素只含有25。不过这个时候我还没理解到他为什么会遍历到5去,因为我认为在第一个执行后,L 就变为了[1],就只剩一个元素了,就不应会有后续元素的遍历了。
你的代码可以和下面的代码对比运行一下
def square_of_sum(L):
s=[]
for x in L:
s.append(x*x)
return sum (s)
print square_of_sum([1, 2, 3, 4, 5])
print square_of_sum([-5, 0, 5, 15, 25])
举报