Use*_*123 0 python lambda function
注意:原始问题是在 Python 中为 sigma sum 设置的,但有一个更好的提问版本。原始问题显示在页面底部。
保留原始问题以保证先前答案的有效性。
新版本:
如何将表达式作为参数传递给函数,然后在 Python 中执行它?
def f(variable, function):
# here calculate the function (unknown part)
f(3, 2 * variable)
Run Code Online (Sandbox Code Playgroud)
结果应该是 6。 (f(x) = 2 * x; x = 3)
我怎样才能做到这一点?
原始问题: 我想用 Python创建Sigma Sum Notation。Capital-Sigma 符号只是从第一个定义的变量到变量i的表达式的总和,变量i改变了 1,到变量n。
我的代码:
Run Code Online (Sandbox Code Playgroud)# First we'll define the function: def sum(i, n, expression): result = 0 while i <= n: # do something with expression here: # (execute expression) print(result) # then we will calculate something, for example: sum(1, 10, i**2)我找不到执行表达式的方法。
简而言之: 使用 lambda 表达式。
def sigma_sum(start, end, expression):
return sum(expression(i) for i in range(start, end))
Run Code Online (Sandbox Code Playgroud)
使用lambda函数的示例用法
>>> sigma_sum(1, 10, lambda i: i**2)
285
Run Code Online (Sandbox Code Playgroud)
或使用命名函数
def square(i):
return i**2
>>> sigma_sum(1, 10, square)
285
Run Code Online (Sandbox Code Playgroud)