为什么输出结果会多一个none

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

7回答
LeoZhai 2020-02-21 12:14:35

use_reduce()函数已经在里面打印过数据.,

并且函数没有return返回值.所以在下面使用的时候.没有返回值就是None.

然后你就吧None打印出来了- =.

qq_慕斯卡1333655 2020-02-17 17:22:37

同学您好,我开始也多一个none,因为您最后多了一次print

qq_慕斯卡1333655 2020-02-17 17:21:28

# 从functools 中导入reduce函数
from functools import reduce


def use_reduce(data):
   # 使用result接收reduce实现20的阶乘
   result = reduce(lambda m,n:m * n, data)
   print(result)
# 测试该功能
if __name__ == '__main__':
   # 使用data接收一个1-20的数值
   data = list(range(1,21))
   # 调用use_reduce函数传入data
   result = use_reduce(data)

慕猿梦 2019-05-26 12:46:13

同学,你好,同学的第6行已经print()输出,在调用函数时,直接use_reduce(data)即可

http://img1.sycdn.imooc.com//climg/5cea19e20001bef104640293.jpg

如果我的回答解决了你的疑惑,欢迎采纳!!祝学习愉快~~~~~

慕粉6403580 2019-05-25 23:08:54

tkpromise讲的好 很清晰

进击的蜂蜜 2019-05-18 16:38:49

use_reduce()函数中已经print了,然后你在main函数中调用时又print了一次

tkpromise 2019-05-10 00:21:27

这里的None是第12行(最后一行)输出的,由于use_reduce函数关未定义return,默认为None

print(use_reduce(data))

请参照以下源码:

# 从functools 中导入reduce函数
from functools import reduce
def use_reduce(data):
    # 使用result接收reduce实现20的阶乘
    result = reduce(lambda x,y: x * y, data)
    print(result)
# 测试该功能
if __name__ == '__main__':
    # 使用data接收一个1-20的数值
    data = list(range(1,21))
    # 调用use_reduce函数传入data
    use_reduce(data)


问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
1.Python零基础入门
  • 参与学习           人
  • 提交作业       2727    份
  • 解答问题       8160    个

想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师