python - 在 Python 中,如何在执行 if 语句时从函数中返回值?
问题描述
在这个函数中,我想在if
执行语句时返回一个值。
由于 Python 总是返回一些东西,所以它返回None
.
def Persistence(number, counter):
numArr = [int(i) for i in str(number)]
result = 1
data = None
for j in numArr:
result *= j
if len(str(number)) == 1:
data = str(f'Done. {counter} steps taken')
print(data)
# return data
else:
counter = counter + 1
Persistence(result, counter)
# return data
print(Persistence(333,0))
也许我把return
关键字放在了错误的地方(我把它放在两个不同的地方,标记为评论)或其他东西,但我想不通。
请帮帮我。另外,如果除了我的技术之外还有另一种计算递归步骤的方法,请告诉我。
解决方案
也许试试这个:
def Persistence(number, counter):
numArr = [int(i) for i in str(number)]
result = 1
for j in numArr:
result *= j
if len(str(number)) == 1:
return str(f'Done. {counter} steps taken')
counter = counter + 1
return Persistence(result, counter)
print(Persistence(333,0))
希望能帮助到你
推荐阅读
- java - 用 List 转换对象
字段到 MultiValueMap - graphql - 使用自定义类型的 TypeGraphql 字段和 Arg 装饰器
- google-places-api - 有什么方法可以从 Google Places API 获得 60 多个结果?
- javascript - 从 Axios Promise 存储数据以供多种用途
- javascript - 尝试使用 Fetch 在 JavaScript 中记录来自 REST API 的 JSON 响应
- html - 如何使用 Chome 和/或 Firefox 上的检查窗口找到网页元素的 innerText 和 outerHTML?
- google-bigquery - BigQuery DataStudio 集成不起作用
- python - 准牛顿方法实现无法正常工作
- push-notification - 推送通知在自定义应用程序中无法正常工作 [Rocket.chat]
- matlab - Matlab自回归神经网络开环与闭环