如何从递归调用中返回值

问题描述 投票:0回答:1

我正在尝试创建一个递归调用,一旦递归完成,就返回一个值。这是我的理论代码:

def count(some_thing):
    c = 0
    while some_condition:
        c += 1
        count(changed_thing)
    return c

我将如何处理?我也尝试在函数的定义中将c解析为参数,但也无法弄清楚。

python recursion
1个回答
0
投票

这是一个递归函数的有效示例,该函数基于您的代码。

[编写递归函数时,您需要一个停止条件(在这种情况下为c==0),并且需要一个递归步骤,使问题稍小一些,然后再次调用该函数(在本例中为c-1)。

这里是代码:

def count(c):

    if c == 0:            # Stop condition 
        print("Stopping!")
        return 42         # A magic number - no particular meaning

    print(f"c is {c}. Not stopping yet")
    return count(c-1)     # recursion step 

count(3)

当然是结果:

c is 3. Not stopping yet
c is 2. Not stopping yet
c is 1. Not stopping yet
Stopping!
© www.soinside.com 2019 - 2024. All rights reserved.