기본 콘텐츠로 건너뛰기

라벨이 재귀함수인 게시물 표시

[matplotlib]quiver()함수

[python]재귀함수(Recursive Function)

함수 관련내용 함수(Function): 함수의 정의 전역변수와 지역변수 함수: 인수의 전달 가변인수 발생자(generator) 주요한 내장함수들 재귀함수(Recursive Function) 람다함수(Lambda Function) Python의 함수는 1급(First Class)객체 1급 객체와 변수의 영역 클로저(Closure) 데코레이터(Decorator, 장식자) 재귀함수(Recursive Function) 함수는 다른 함수를 포함할 수 있습니다. 그 포함된 함수가 함수 자신일 경우 재귀함수(Recursive Function) 라고 합니다. 예를 들어 식 1과 같이 1부터 지정된 수까지 모든 정수를 곱하는 경우 즉, factorial을 재귀함수로 작성할 수 있습니다. n factorial = n! = 1·2·3 … n (식 1) def factorial(x): if x==1: return 1 else: return (x*factorial(x-1)) factorial(5) 120 위 사용자 정의 함수 factorial() 은 if ~ else 구문 을 적용하였으며 if 와 else 블럭 모두 return() 함수를 하위 문으로 가지고 있으므로 어떤 블럭이 실행되더라도 함수는 종결됩니다. 그러나 else 블럭 의 실행은 함수 자신을 반환하는 것으로 if 블럭 이 실행되지 않는 이상 함수의 실행이 반복됩니다. 최종적으로 else 문 의 실행으로 1을 반환하는 경우 x == 1 이 되어 실행이 종결됩니다. 이같은 종결조건 은 재귀함수의 필수 요소입니다. 위 함수에 인수 5를 전달하여 실행하는 과정은 다음과 같습니다. factorial(5)  (5) 전달된 인수 → 5 × factorial(4)  fatorial(4) 호출 → 5 × 4 × factorial(3)...