Как сделать запись сигма-суммы в Python? - PullRequest
0 голосов
/ 18 февраля 2020

Я хочу создать Сигма нотацию с Python. Обозначение Capital-Sigma - это просто сумма выражений из первой определенной переменной через переменную i , которая изменяется на 1, в переменную n .

Мой код будет выглядеть вот так:

# First we'll define the function:
def sum(i, n, expression):
  result = 0
  while i <= n:
    # !!!!!!!!!!!!!!!!!!!!!
    # here is the part that I can't solve
    # I think that solution is something like this, but it's not:
    result += expression
  print(result)

# then we will calculate something, for example:
sum(1, 10, i**2)

Я не могу решить проблему с восклицательными знаками (вверху). Ошибка происходит потому, что переменная 'i' не определена. Я пытался исправить это, но не смог.

Должна быть функция, потому что я сделаю этот файл в виде библиотеки (с другими функциями).

Я уменьшил эту проблему следующим образом (первая проблема эквивалентна этой):

def function(variable, expression):
 # here calculate the expression (unknown part)

function(1, 2 * variable)

Как я могу это сделать?

1 Ответ

2 голосов
/ 18 февраля 2020
def sigma_sum(start, end, expression):
    return sum(expression(i) for i in range(start, end))

Пример использования с использованием функции lambda

>>> sigma_sum(1, 10, lambda i: i**2)
285

или с использованием именованной функции

def square(i):
    return i**2

>>> sigma_sum(1, 10, square)
285
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...