2024-04-19 15:48:09 发布
网友
我的任务是只使用lambda表达式实现factorial函数。 这是我试过的
factorial
fact = lambda n: if n == 0 return 1 else ...
我卡住了!你知道吗
编辑:修复if语句语法错误
fact = lambda n: 1 if n == 0 else ...
我又卡住了。。你知道吗
怎么做?你知道吗
一种简单的方法是使用分配给lambda的变量的名称作为递归调用代码的方式:
lambda
>>> fact = lambda n: 1 if n <= 0 else n * fact(n - 1) >>> fact(10) 3628800 >>>
有更复杂的解决方案涉及将lambda表达式传递给lambda表达式或Y-组合子。使用if ... else ...语句已经注定了您的方法的失败。lambda表达式只能包含其他表达式,而不能包含语句,因此需要改用... if ... else ...表达式语法。你知道吗
if ... else ...
... if ... else ...
一种简单的方法是使用分配给
lambda
的变量的名称作为递归调用代码的方式:有更复杂的解决方案涉及将
lambda
表达式传递给lambda
表达式或Y-组合子。使用if ... else ...
语句已经注定了您的方法的失败。lambda
表达式只能包含其他表达式,而不能包含语句,因此需要改用... if ... else ...
表达式语法。你知道吗相关问题 更多 >
编程相关推荐