This:
add = lambda x, y: x += y
给:
语法错误:语法无效
我的任务是能够使用 1 个函数和 2 个 lambda 函数将 1-513 之间的每个数字相加或相加。因此,如果您有任何建议会有所帮助。
正如大家所说,你应该在lambda正文中放一个表达式而不是一个语句,也许这会帮助你:
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)
对于连续乘法,这有效:
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(