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

请教代码问题

def calc_prod(lst):

    def ff():

        print map(lambda x:x*x,lst)

    return ff


f = calc_prod([1, 2, 3, 4])

print f()

结果:

[1, 4, 9, 16]
None

这样写输出为什么有None


正在回答

2 回答

若想实现直接输出列表的效果,直接f()就可实现。若写为print f(),则在调用f()函数之后,还会输出一行None,此处的None为None Type类型的值,由于你定义的ff()没有返回值,故为空,所以最后输出一行None.

def calc_prod(lst):
    def ff():
        return map(lambda x:x*x,lst)
    return ff

f = calc_prod([1, 2, 3, 4])
# f()
print(f())

# b = print(5)
# print(b)

# print(type(None))


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

Sunny2017

参考资料:http://blog.csdn.net/sunhuaqiang1/article/details/62865547
2017-03-17 回复 有任何疑惑可以回复我~
#2

曹老三 提问者

非常感谢!
2017-03-17 回复 有任何疑惑可以回复我~

print 去掉 直接写 f()

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

举报

0/150
提交
取消
python进阶
  • 参与学习       255665    人
  • 解答问题       2949    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

请教代码问题

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