반응형
Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Linux
- 주식공부
- 자바스크립트
- jQuery
- 덩크 하이
- Dunk Low
- dunk high
- 주식
- Nike
- sacai
- oracle
- 나이키
- 덩크로우
- 파이썬
- 제이쿼리
- JavaScript
- 리눅스
- 오라클
- 드로우
- 덩크 로우
- GIT
- stockx.com
- dunklow
- 코로나19
- Github
- 리액트
- draw
- Python
- react
- 발매예정
Archives
- Today
- Total
Life goes slowly...
[Python] 파이썬 recursive function 재귀 함수 본문
728x90
반응형
파이썬 프로그래밍 재귀 함수(Recursive Function)
파이썬 프로그래밍 함수 안에서 자기 자신을 호출하는 함수
recursive function 재귀 함수는 함수 안에서 자기 자신을 호출하는 함수를 말합니다.
선언한 함수가 호출자이자 동시에 함수의 피호출자가 되어서 반복에 반복에 반복을 지속적으로 하는 재귀함수를 말합니다.
def recursive_function():
print('call recursive function')
recursive_function()
recursive_function()
call recursive function
call recursive function
......
recursive_function()
RuntimeError: maximum recursion depth exceeded
파이썬 프로그래밍이 무한 반복으로 실행이 되는 것 같지만 어느 순간 에러를 발생하면서 종료가 되며 호출 가능한 최대 깊이 및 반복 깊이를 초과하였다고 에러 내용을 확인할 수 있습니다.
이처럼 Python 프로그래밍에서는 재귀 함수를 이용한 반복하는 횟수가 한정되어 있습니다.
재귀 함수의 편리한 점도 있지만 성능이 중요한 경우에는 재귀 함수 대신 반복문을 사용하는 것이 프로그래밍상 안전하며, 그리고 재귀 함수를 사용 시에는 종료 조건을 선언하여 주는것이 좋습니다.
def recursive_function(cnt):
if cnt == 0:
return
print('Hello, world!', cnt)
cnt -= 1
recursive_function(cnt)
recursive_function(5)
('Hello, world!', 5)
('Hello, world!', 4)
('Hello, world!', 3)
('Hello, world!', 2)
('Hello, world!', 1)
예시처럼 반복도중에 종료 조건을 선언해야만 stack overflow를 방지할 수 있습니다.
728x90
반응형
'프로그래밍 > Python' 카테고리의 다른 글
[Python] 파이썬 라이브러리 beautiful soup 으로 웹 크롤링하기 (0) | 2020.08.21 |
---|---|
[Python] 파이썬 엑셀 활용 openpyxl 라이브러리 (0) | 2020.08.10 |
[Python] 파이썬 pyinstaller 모듈로 실행파일로 만들기 (0) | 2020.08.10 |
[Python] 파이썬 nested function 중첩 함수 (0) | 2020.08.09 |
[Python] 파이썬의 lambda식 익명 함수 (0) | 2020.08.08 |
[Python] 파이썬 unittest 모듈로 단위테스트하기 (0) | 2020.08.07 |
[Python] 파이썬 Try~Except 으로 예외 처리 (0) | 2020.08.07 |
[Python] 파이썬의 연산 math 모듈 (0) | 2020.08.06 |
Comments