使用python怎么样停止递归?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
首先,在递归函数之外定义一个全局变量:isGo,布尔型,初始值为真,意思是可以继续循环。
接着,在递归循环的一开始就设置判断机制,一旦isGo的值为假,就层层阻止,直到退出所有层的循环,从而达到强制退出递归的目的。
if(isGo==false){ return }
最后,在递归的“满足条件”代码中增加如下语句:
isGo =false;
下面给出修改后的代码:
var isGo:Boolean=true functionarr_all(pre:Array,nex:Array) { if(isGo==false){return} var j:uint=nex.length; if (j==1) { var t=[]; for (var i:uint=0;i<pre.length; i++) { t.push(pre[i]); } t.push(nex[0]); isGo =false; returninfo.appendText("\n"+pc(t));//..out........ } for (var k:uint=0; k<j; k++) { var p:Array=pre.slice(); var s:Array=nex.slice(); p.push(s.splice(k,1)); arr_all(p,s); } }
问题补充:
python停止函数中的递归
我有一个函数,它的工作方式类似于树遍历,但它会遍历字典。dict中的每个键在列表中都有两个项,因此结构类似于二叉树。我试图找到一个特定的键,同时从一个给定的键开始,当我找到键时,我想停止我的功能并返回我所处的深度。我在dict中搜索find the key,但递归函数不会在return语句处停止。 我的职能:
def count(dict, key, depth): if key is not None: if key == 42: return depth return count(map, map[key][0], depth+1) return count(map, map[key][1], depth+1)
看完上述内容,你们掌握使用python怎么样停止递归的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。