1 #!/usr/bin/env python 2 #-*- coding:utf-8 -*- 3 def factorial_add(n): 4 empty_list=[] #定义一个空列表 5 for i in map(lambda x:x+1,range(n)): #用传进来的变量(n)来生成一个列表,用map让列表都+1,eg:range(5) => [1,2,3,4,5] 6 a=reduce(lambda x,y:x*y,map(lambda x:x+1,range(i))) #生成阶乘,用map去掉列表中的0 7 empty_list.append(a) #把阶乘结果append到空的列表empty_list中 8 return empty_list 9 10 if __name__ == '__main__': 11 import sys 12 13 try: 14 n = input("Enter a Number(int): ") 15 result = factorial_add(n) 16 print reduce(lambda x,y:x+y,result) #阶乘结果相加 17 except (NameError,TypeError): 18 print "That is not a Number!" 19