首页 > 解决方案 > 在 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关键字放在了错误的地方(我把它放在两个不同的地方,标记为评论)或其他东西,但我想不通。

请帮帮我。另外,如果除了我的技术之外还有另一种计算递归步骤的方法,请告诉我。

标签: pythonrecursionreturn

解决方案


也许试试这个:

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))

希望能帮助到你


推荐阅读