Лямбда неверный синтаксис - PullRequest
0 голосов
/ 15 октября 2018

Это:

add = lambda x, y: x += y

Дает:

SyntaxError: неверный синтаксис

Моя задача состоит в том, чтобы иметь возможность обдумывать или добавлять каждое числомежду 1-513 с 1 функцией и 2 лямбда-функциями.Поэтому, если у вас есть предложения, которые помогут.

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

Для продолжения умножения это работает:

f = lambda n1, n2: n2 * (f(n1, n2-1) if n2 > 1 else 1)
print('f(1, 5) =', f(1, 5))

Этот вывод:

f(1, 5) = 120

(1 * 2 * 3 * 4 * 5 = 120)

0 голосов
/ 15 октября 2018

Как все говорили, вы должны поместить выражение, а не выражение в лямбда-тело, может быть, это поможет вам:

from functools import reduce

add = lambda x,y: reduce(lambda i,j:i+j, range(x,y))

для mul:

mult = lambda x,y: reduce(lambda i,j:i*j, range(x,y))

или вамможно обойтись без reduce, для add:

add = lambda x,y: sum(range(x,y))

также вы можете использовать operator вот так:

from operator import mul
from functools import reduce
mult = lambda x,y: reduce(mul, range(x,y), 1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...