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

为什么这样缩进答案不一样?

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()
print average(1, 2)
print average(1, 2, 2, 3, 4)

只有line 7 return 的缩进跟答案不一致

这样的答案是 0.0,0.5,0.2

为什么这样缩进答案不一样?


正在回答

3 回答

缩进不一样那么相应的语句的作用范围也不一样,python是依据缩进来区分代码块的,所以编写代码时一定要把握好相应的代码块的缩进量

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

因为你在for循环中,args的第一个元素计算了sum=sum+x,后面直接return返回了,只要第一个return返回成功,后面的循环将不再进行,所以在这个例子里实际上是用了1/5=0.2,我的理解是这样,不知道对不对,可以参考下面的例子,来自简书的“凡人求索”:

def func1():
    for i in range(1, 5):
            print (i)
def func2():
    for i in range(1, 5):
            return (i)

func1()
print ("..............")
print (func2())

输出结果
1
2
3
4
..............
1
不是打广告,我也是刚开始学习的小白


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

类似于作用域的问题一样  Python代码简单是因为把空格也定义在函数里面  每个函数里面的参数形成的定义域可以访问函数里面的参数  但是不能访问外面的参数  相当于父元素可以访问子元素  但是子元素不能访问父元素  当你删掉一个前面的空格时  就相当于个这个参数提高了一个层级  所有就无法访问了  个人的浅显观点  选择采纳

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

举报

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

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

进入课程

为什么这样缩进答案不一样?

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