Python Lambda无效语法

Python Lambda无效语法,python,python-3.x,lambda,Python,Python 3.x,Lambda,这: 给出: SyntaxError:无效语法 我的任务是能够使用1个函数和2个lambda函数对1-513之间的每个数字进行mullitply或加法。所以,如果您有任何建议会有所帮助。正如大家所说,您应该在lambda body中添加一个表达式而不是语句,也许这会对您有所帮助: add = lambda x, y: x += y 对于mul: from functools import reduce add = lambda x,y: reduce(lambda i,j:i+j, rang

这:

给出:

SyntaxError:无效语法


我的任务是能够使用1个函数和2个lambda函数对1-513之间的每个数字进行mullitply或加法。所以,如果您有任何建议会有所帮助。

正如大家所说,您应该在lambda body中添加一个表达式而不是语句,也许这会对您有所帮助:

add = lambda x, y: x += y
对于
mul

from functools import reduce

add = lambda x,y: reduce(lambda i,j:i+j, range(x,y))
或者您可以不使用
reduce
,对于
add

mult = lambda x,y: reduce(lambda i,j:i*j, range(x,y))
此外,您还可以像这样使用
操作符

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

对于连续乘法,这是有效的:

from operator import mul
from functools import reduce
mult = lambda x,y: reduce(mul, range(x,y), 1)
此输出:

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

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

x+=y
是一个语句,而不是表达式<代码>lambdas只能包含表达式。请改为尝试
lambda x,y:x+y
。可能存在重复的
f(1, 5) = 120