首页 > 解决方案 > 在python中递归返回一个三元似乎不起作用

问题描述

下面的代码打印 1 但应该打印 24。用简单的 if/else 重写可以正常工作。

def factorial(x):
  return 1 if (x == 1) else factorial(x - 1) 

print(factorial(4))

标签: pythonrecursionternary

解决方案


不是三元问题,而是函数本身的定义。这应该是

def factorial(x):
  return x if x == 1 else x * factorial(x - 1)

推荐阅读