我一直在试图理解递归。但我觉得我不太懂。在
下面是我的代码大纲:
def f():
used = [anything]
new = []
while i < something:
new.append(i)
i += 1
for i in new:
if i in used:
f()
else:
return new
现在,我不认为我可以使用这个,因为我没有迭代,也没有基本情况。我需要继续运行这个程序,直到我得到一组没有使用的值(随机选取)。实现这一目标的最佳方式是什么?创建另一个函数?在
任何帮助都将不胜感激。在
谢谢!在
Tags:
您应该添加函数的参数,并将适当的参数传递给递归函数调用。在
例如:
我认为正则while循环比递归调用更能解决这个问题。我不完全理解您试图用这段代码实现什么,但这里用您的比喻重写了它:
首先,您需要添加参数,否则它不是真正的递归的。要点是这样的
递归的要点是用一个新的参数调用函数本身。x每次都会改变值,所以最终if会降到5以下,您将返回x(它将是4)。所以它是f(7),减1,f(6),减1,f(5),减1,f(4),返回4。在
你也没有定义i或者其他东西,所以你会有一个无限循环,因为我总是少,事实上,我很惊讶代码能工作,因为这两个都没有定义。在
相关问题 更多 >
编程相关推荐