我正在尝试创建一个递归调用,一旦递归完成,就返回一个值。这是我的理论代码:
def count(some_thing):
c = 0
while some_condition:
c += 1
count(changed_thing)
return c
我将如何处理?我也尝试在函数的定义中将c解析为参数,但也无法弄清楚。
这是一个递归函数的有效示例,该函数基于您的代码。
[编写递归函数时,您需要一个停止条件(在这种情况下为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!