python - 通过递归传递 lambda

标签 python

我正在尝试传入 lambda。

def summation(n, term):
    if (n == 0):
        return
    else:
        return summation(n - 1, term) + term

print(summation(5, lambda x: x + 1))            

据我了解,lambda x : x + 1 将变为 termterm 将计算为 n + 1 在函数中,但这不起作用。谁能给我解释一下?

最佳答案

lambda 是一个函数。所以 term 是一个函数。如果您希望 term 的计算结果为 n + 1,您必须使用 n 调用它:term(n)

你还有另一个问题,你有一个空的return,它会自动变成return None。您是说 return 0 吗?

关于python - 通过递归传递 lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58016864/

相关文章:

python - PyOpenCl:如何调试段错误?

Python:将分组均值分配给一维数组

python - 计算略有不同的矩阵乘法

python - 如何使用 tkinter 在窗口中显示值?

python - 为什么全局变量 fsize 会被清除?

python - 显示字符串中的不可打印字符

python - 在文本文件中搜索多个字符串并将结果打印到新的文本文件中

python - Tweepy Twitter 获取特定用户的所有推文回复

python - 压缩文件并保留修改时间戳

python - Pygame (A bit racey) 游戏错误