方法一
import functoolssum = 0for i in range(1,21): sum = sum + functools.reduce(lambda x,y: x*y, range(1, i+1))print(sum)lambda x,y: x*y 的意思是:有一个函数,接受x, y两个参数做乘法。
import functools 方法二
def f(n): if n == 1: return 1 else: return functools.reduce(lambda x,y: x*y, range(1, n+1)) + f(n-1)print(f(20))方法三
def plus(n): if n == 1: return 1 else: return reduce(lambda x,y: x*y, range(1,n+1)) + plus(n-1)print plus(20)方法四
sum = 0x = 1for i in range(1,21): x = x * i sum = sum + xprint(sum)