这样为什么不行?
#!/usr/bin/python # -*- coding: UTF-8 -*- def square_of_sum(L): for x in L: return sum(math.sqrt(x)) print(square_of_sum([1,2,3,4]))
#!/usr/bin/python # -*- coding: UTF-8 -*- def square_of_sum(L): for x in L: return sum(math.sqrt(x)) print(square_of_sum([1,2,3,4]))
2020-02-28
你的是逻辑问题
import math def square_of_sum(L): sum=0 for x in L: sum=sum+math.sqrt(x) return sum print(square_of_sum([1,2,3,4]))
你的代码问题,先不看sqrt()函数,看如下你的代码
for x in L: return sum(math.sqrt(x))
在for迭代函数里,下面 直接 用return ,并不是求和,只是返回了一次结果
函数体内部的语句在执行时,一旦执行到return,函数就执行完毕,并将结果返回。 如果没有return语句,函数执行完毕后也会返回结果,只是结果为None。
所以你的代码结果一直是1.0,也就是第一个数 1 的平方根
希望对你有帮助
举报