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

还弄得不是很明白。。这样写的结果为什么是1

def calc_prod(lst):
    def prod():
        j=1
        for i in lst:
            j=i*j
            return j
    return prod
f = calc_prod([1, 2, 3, 4])
print (f())

正在回答

3 回答

def calc_prod(lst):
    def prod():
        j=1
        sum = 0
        for i in lst:
            j=i*j
            sum +=j
        return j
    return prod
f = calc_prod([1, 2, 3, 4])
print (f())

需要把每次计算后的值相加得到总和

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

兄弟,我和你写的一样,正在纠结呢

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

因为return j 在for 循环里面,只进行了一次循环就结束了。return j 应该写在与for对齐的一行内,即在for整个结束之后return。

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

慕的地8042170

按你说的这种,输出的结果是4 还是不对 搞不懂怎么回事,能给解释一下吗
2019-03-07 回复 有任何疑惑可以回复我~
#2

慕的地8042170

sorry, 是我打错了。。。 没问题了
2019-03-07 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

还弄得不是很明白。。这样写的结果为什么是1

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