python - 在python中递归返回一个三元似乎不起作用
问题描述
下面的代码打印 1 但应该打印 24。用简单的 if/else 重写可以正常工作。
def factorial(x):
return 1 if (x == 1) else factorial(x - 1)
print(factorial(4))
解决方案
不是三元问题,而是函数本身的定义。这应该是
def factorial(x):
return x if x == 1 else x * factorial(x - 1)
推荐阅读
- vscode-settings - 无法使 Emmet 用于 Visual Studio 代码中的文本文件
- ios - 在 ios 中关闭应用程序时没有出现 FCM 数据消息
- python - 致命的 Python 错误:init_import_size:无法在 Anaconda Prompt 中导入站点模块
- r - 希望从 reddit.io 上抓取文本
- reactjs - react redux 中的 action 是如何工作的?
- node.js - NodeJS 无法连接到 mongo 副本集
- java - 使用 Java Selenium 读取和迭代 MongoDB 集合
- php - 每个循环 PHP 的 JSON 数组
- firebase - 生产后如何测试颤振应用程序?
- instagram-graph-api - 有人知道针对 Audience_city 和 Audience_country 的 Instagram api 响应如何吗?