>  기사  >  백엔드 개발  >  파이썬에서 재귀는 몇 번이나 도달할 수 있나요?

파이썬에서 재귀는 몇 번이나 도달할 수 있나요?

高洛峰
高洛峰원래의
2016-10-20 09:39:401520검색

파이썬에서 재귀는 몇 번까지 도달할 수 있나요? 왜냐면 프로그램을 실행하다 보면 횟수가 많을 때도 있고 적을 때도 있기 때문이죠. 저는 이 문제에 대해 한 번도 생각해 본 적이 없습니다. 그런 다음 코드는 다음과 같습니다.

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

위 코드를 내 컴퓨터에서 실행하면 최대 998까지 인쇄할 수 있으며 " RuntimeError: 최대 재귀 깊이가 초과되었습니다." 오류가 발생했습니다. 이봐요, 한계가 있어요. 그런데 곰곰이 생각해보니 파이썬이 그렇게 약하지는 않았을 것 같아요. 몇 번 검색한 결과, 이것이 무한 재귀로 인해 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으로 문의하세요.