ホームページ  >  記事  >  バックエンド開発  >  Python では再帰は何回まで到達できますか?

Python では再帰は何回まで到達できますか?

高洛峰
高洛峰オリジナル
2016-10-20 09:39:401560ブラウズ

Pythonでは再帰は何回まで到達できますか?プログラムを実行すると、回数が多くなったり少なくなったりするため、これまでこの問題について考えたことはありませんでした。コードは次のとおりです。

def recursion(n):
    if(n <= 0):
        return
    print n
    recursion(n - 1)
  
if __name__ == "__main__":
    recursion(1000)

上記のコードを自分のマシンで実行すると、最大 998 まで出力できることがわかり、その後、「RuntimeError: 最大再帰深度を超えました」エラーが発生します。投げられた。 ねえ、限界があります。でもよく考えたら、Python はそんなに弱くないはずだ。調べてみると、これは無限再帰によって Python がオーバーフローしてクラッシュするのを防ぐために Python によって特別に設定されたメカニズムであることがわかりました。再帰の最大数は再調整できます。 (http://docs.python.org/2/library/sys.html#sys.setrecursionlimit)、コードを次のように変更します:

import sys
sys.setrecursionlimit(1500)  # set the maximum depth as 1500
  
def recursion(n):
    if(n <= 0):
        return
    print n
    recursion(n - 1)
  
if __name__ == "__main__":
    recursion(1200)


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。