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

我运行结果正确但是为什么我有NONE

def average(*args):

    y=0.0

    s=0.0

    b=0.0

    if len(args)==0:

        return b

    for x in args:

        y=y+1

        s=s+x

        b=s/y

    print b


print average()

print average(1, 2)

print average(1, 2, 2, 3, 4)


正在回答

5 回答

我也遇到了这个问题,网上找的答案

因为python中print函数需要返回值,如果你在print函数中所放的函数没有返回值,那么print将会return None

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

把average函数里的print全部换成 return

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

def average(*args):

    if len(args)==0:

        print 0.0

    else:

        print sum(args)*1.0/len(args)


print average()

print average(1, 2)

print average(1, 2, 2, 3, 4)

我这样输还是有none

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

你的变量y有什么用?你应该除以它的长度,改为y=len(args)

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

b = s / y 不能写在for循环里面 不然每次都会除一次

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

举报

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

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

进入课程

我运行结果正确但是为什么我有NONE

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