Python Lambda无效语法
这: 给出: SyntaxError:无效语法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
我的任务是能够使用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