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

return的位置导致了答案的不用为什么?

def average(*args):
    sum = 0.0
    if len(args) == 0:
        return sum
    for x in args:
        sum = sum + x
    return sum / len(args)

print average(1,2) 这个的答案是1.5,但是return的位置 在

  sum = sum + x
  return sum / len(args)

的时候答案却是0.5,为什么?

正在回答

3 回答

return代表循环结束,所以当return在sum=sum+x后时,执行第一次sum=0+1=1,然后下一句就会返回1/2=0.5,而for循环也结束了,所以不存在再加上2了

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

记叙疯狂 提问者

非常感谢!
2018-06-22 回复 有任何疑惑可以回复我~

return 会跳出循环,如果return写在for循环里面,则for循环只会执行一次便会返回结果,所以执行一次就是sum = 0.0 + 1 ,结果为1.0,返回平均值为0.5

0 回复 有任何疑惑可以回复我~
  sum = sum + x
  return sum / len(args)

这种情况下就是说在第一次sum加上x运算后就直接返回求sum的平均值。就不会再进入循环去加上其他变量了。

比如print average(1,2)时,原本sum为0,按照上式的缩进方式来看就是先加上1,然后直接退出循环求1的平均值了

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

举报

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

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

进入课程

return的位置导致了答案的不用为什么?

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