waitforlove 发表于 2018-2-10 15:43:06

Python求阶乘

请问一下能不能用lambda的形式写一个递归求阶乘
我想把我代码定义函数部分去掉
def jiec(n):
    f=2 if n-1==1 else (jiec(n-1)*n if n-1>1 else print('你输入的数字错误'))
    return f
   
jj=int(input('请输入一个大于1的整数:'))
kk=jiec(jj)
if kk!=None:
    print(kk,'是',jj-1,'的阶乘')

影-死神 发表于 2018-2-10 15:53:52

这应该是不可能的吧,递归需要调用本身,没有函数名的话怎么调用

waitforlove 发表于 2018-2-10 15:56:39

影-死神 发表于 2018-2-10 15:53
这应该是不可能的吧,递归需要调用本身,没有函数名的话怎么调用

lambda 写的函数可以给上名字吗,有的话是不是可以调用自己了

°蓝鲤歌蓝 发表于 2018-2-10 15:58:23

fatter = lambda x:(x*fatter(x-1))if x > 1 else 1

waitforlove 发表于 2018-2-10 16:05:07

°蓝鲤歌蓝 发表于 2018-2-10 15:58
fatter = lambda x:(x*fatter(x-1))if x > 1 else 1

厉害了

°蓝鲤歌蓝 发表于 2018-2-10 16:07:49

waitforlove 发表于 2018-2-10 16:05
厉害了

没有没有

waitforlove 发表于 2018-2-10 16:18:01

waitforlove 发表于 2018-2-10 16:05
厉害了

fatter=lambda n:2 if n-1==1 else (fatter(n-1)*n if n-1>1 else print('你输入的数字错误'))
jj=int(input('请输入一个大于1的整数:'))
kk=fatter(jj)
if kk!=None:
    print(kk,'是',jj-1,'的阶乘')
厉害没毛病{:10_254:}
页: [1]
查看完整版本: Python求阶乘