您好,登錄后才能下訂單哦!
使用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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。