如何将Python递归函数改写为长尾递归以避免停止?

2026-04-15 06:4310阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计477个文字,预计阅读时间需要2分钟。

如何将Python递归函数改写为长尾递归以避免停止?

首先,在递归函数外部定义一个全局变量:isGo,布尔型,初始值为真。这意味着函数可以持续递归。

接着,在递归循环的开始处设置一个判断机制。一旦isGo的值为假,就层层停止递归,直到退出。

首先,在递归函数之外定义一个全局变量:isGo,布尔型,初始值为真,意思是可以继续循环。

接着,在递归循环的一开始就设置判断机制,一旦isGo的值为假,就层层阻止,直到退出所有层的循环,从而达到强制退出递归的目的。

如何将Python递归函数改写为长尾递归以避免停止?

if(isGo==false){ return }

最后,在递归的“满足条件”代码中增加如下语句:

isGo=false;

下面给出修改后的代码:

varisGo:Boolean=true functionarr_all(pre:Array,nex:Array){ if(isGo==false){return} varj:uint=nex.length; if(j==1){ vart=[]; for(vari:uint=0;i<pre.length;i++){ t.push(pre[i]); } t.push(nex[0]); isGo=false; returninfo.appendText("\n"+pc(t));//..out........ } for(vark:uint=0;k<j;k++){ varp:Array=pre.slice(); vars: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如何停止递归的文章就介绍到这了,更多相关python停止递归的方法内容请搜索易盾网络以前的文章或继续浏览下面的相关文章希望大家以后多多支持易盾网络!

本文共计477个文字,预计阅读时间需要2分钟。

如何将Python递归函数改写为长尾递归以避免停止?

首先,在递归函数外部定义一个全局变量:isGo,布尔型,初始值为真。这意味着函数可以持续递归。

接着,在递归循环的开始处设置一个判断机制。一旦isGo的值为假,就层层停止递归,直到退出。

首先,在递归函数之外定义一个全局变量:isGo,布尔型,初始值为真,意思是可以继续循环。

接着,在递归循环的一开始就设置判断机制,一旦isGo的值为假,就层层阻止,直到退出所有层的循环,从而达到强制退出递归的目的。

如何将Python递归函数改写为长尾递归以避免停止?

if(isGo==false){ return }

最后,在递归的“满足条件”代码中增加如下语句:

isGo=false;

下面给出修改后的代码:

varisGo:Boolean=true functionarr_all(pre:Array,nex:Array){ if(isGo==false){return} varj:uint=nex.length; if(j==1){ vart=[]; for(vari:uint=0;i<pre.length;i++){ t.push(pre[i]); } t.push(nex[0]); isGo=false; returninfo.appendText("\n"+pc(t));//..out........ } for(vark:uint=0;k<j;k++){ varp:Array=pre.slice(); vars: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如何停止递归的文章就介绍到这了,更多相关python停止递归的方法内容请搜索易盾网络以前的文章或继续浏览下面的相关文章希望大家以后多多支持易盾网络!