運行成功輸出錯誤麻煩看一下謝謝了
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
舉報
2018-12-06
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])
2018-12-01