首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

求 解释下面的python代码,该如何解决

2013-12-19 
求 解释下面的python代码# factorial functionfac lambda n: [1, 0] [n 0] or fac(n - 1) * n# combin

求 解释下面的python代码
# factorial function
fac = lambda n: [1, 0] [n > 0] or fac(n - 1) * n

# combinatorial function
def comb2(n, k):
    return (fac(n) / (fac(n - k) * fac(k)))
[解决办法]
n<=0 时直接返回1
n>0时才使用or后面的计算(注意是个递归,阶乘)
2->1
3->6
4->24
[解决办法]
fac = lambda n: [1, 0] [n > 0] or fac(n - 1) * n

先看第一部分表达式:
[1, 0] [n > 0]
后面的[]是个下标操作
如果n为0,第一部分是1,不执行 or 后面的表达式
如果n大于0(不为0),第一部分是0,则执行or后面的表达式,
且因为or前面是0,返回or后面表达式的结果,作为lambda函数的返回值

comb2函数应该不要解释吧

热点排行