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

我运行结果正确但是为什么我有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
  • 参与学习       758363    人
  • 解答问题       8967    个

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

进入课程

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

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号