TIL

[TIL] python - Recursion Error 해결법

happykoa 2020. 2. 28. 14:52

한번씩 접했던 오류이고 매번 해결하는 명령어를 까먹어서 스스로 기억하자는 마음으로 남깁니다.

 

파이썬에서는 재귀 호출의 깊이가 1000 이상으로 늘어나는 것을 기본적으로 막고 있습니다.

따라서 아래와 같은 코드를 실행시키면 

 

def f(n):
    if n == 1:
        return 1
    else:
        return n+f(n-1)

f(2000)

 

RecursionError: maximum recursion depth exceeded in comparison

다음과 같은 에러가 발생합니다.

 

만약 1000번 이상의 재귀가 요구되는 코드를 작성하고 싶다면 아래 2줄을 추가시켜주면 됩니다.

 

import sys
sys.setrecursionlimit(3000)

물론, sys.setrecursionlimit() 메서드 안에 인자는 여러분의 상황에 맞춰서 숫자를 넣어주시면 됩니다.

Rmx