课程
/后端开发
/Python
/python进阶
我觉得没有语法错误,也看不出来逻辑错误,难道是我没有用三层函数,或者说没有用我没学过的函数?
2018-07-30
源自:python进阶 2-8
正在回答
2个错误,,,,,,,欢迎采纳..........................................
第一:for那里少了一个冒号:
第二:你的prod函数的lst定义错了,这样改变了lst的命名空间.留空就行了,这样下面的代码才能引用calc_prod后的lst.
代码改变如下:
def calc_prod(lst): def prod(): ##这里不要写lst a = 1 for x in lst : ##这里加一个冒号: a *= x return a return prod f = calc_prod([1,2,3,4]) print(f())
1小马哥1
你的代码执行到第6行的时候就会退出函数返回a,所以第7行的return永远执行不到。所以错误。return退出整个函数返回某值,而不是你理解的只返回里边嵌套的函数到外面的函数
我的理解是 第7行 return 返回的 不再是一个函数 而是函数prod()传入lst 之后计算出的一个值 所以 f 也就是一个值 所以f()也就没有意义了 应该在prod() 函数之外再添加一个函数结果应该就没有错了
还有 兄得 第四行的 for 循环是不是少了个冒号啊
举报
学习函数式、模块和面向对象编程,掌握Python高级程序设计