如何在 Python 中进行 Sigma Sum 表示法?

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

我的代码:

# 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)
Run Code Online (Sandbox Code Playgroud)

我找不到执行表达式的方法。


简而言之: 使用 lambda 表达式。

Cor*_*mer 5

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)