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

这样为什么不行?

#!/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]))


正在回答

2 回答

你的是逻辑问题

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  的平方根

希望对你有帮助

1 回复 有任何疑惑可以回复我~
#1

幕布斯9423066 提问者

谢谢~
2020-02-28 回复 有任何疑惑可以回复我~

return math.sqrt(x)就好了。sum多余了

0 回复 有任何疑惑可以回复我~
#1

三桑无枝_

你好像是求和,那就sun+=math.sqrt(x)
2020-02-28 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Python
  • 参与学习       758627    人
  • 解答问题       8667    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

这样为什么不行?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信