티스토리 뷰
목차
반응형
파이썬 재귀함수 2개 소개합니다.
하나는 원하는 횟수만큼 문자열을 반복 출력하는 것이고, 다른 하나는 재귀함수 이용해 문자열 거꾸로 뒤집기하는 것입니다.
1. 문자열 반복 출력
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | def hello1(a, i): if i >= 3: return print(a) hello1(a, i+1) def hello2(a, i): if i <= 0: return print(a) hello2(a, i-1) hello1('three', 0) hello2('five', 5) | cs |
■ 결과
함수 hello1 은 문자열, 반복 횟수를 인자로 전달하면 여러번 출력됩니다.
1번 라인에 선언된 함수 내부에 6번 라인이 존재합니다.
6번 라인에서 자기가 속한 함수를 다시 호출하므로 재귀함수가 성립됩니다.
2번 라인에서 반복 횟수를 확인해 함수 종료 여부를 결정합니다.
함수 hello2 는 재귀함수 hello1 과 똑같습니다. 반복 횟수를 하나씩 감소하며 0이 되었을 때 재귀함수는 종료됩니다.
2. 문자열 거꾸로 뒤집기 출력
1 2 3 4 5 6 7 8 9 10 | def reverseText1(a, i): if i >= len(a): return reverseText1(a, i+1) print(a[i], end='') a = 'example' reverseText1(a, 0) | cs |
■ 1. 결과
재귀함수에서 문자열 길이를 인덱스로 설정해 하나씩 감소하며 거꾸로 문자열을 출력합니다.
아래는 같은 기능의 파이썬 재귀함수입니다.
결과는 위와 똑같으며, 인덱스 계산하는 방법만 다릅니다.
1 2 3 4 5 6 7 8 9 10 | def reverseText2(a, i): if i <= 0: return print(a[i-1], end='') reverseText2(a, i-1) a = 'example' reverseText2(a, len(a)) | cs |
■ 2. 결과
1 2 3 4 5 6 7 8 9 10 | def reverseText3(a): if len(a) == 0: return print(a[-1], end='') reverseText3(a[:-1]) a = 'example' reverseText3(a) | cs |
■ 3. 결과
1 2 3 4 5 6 7 8 9 10 | def reverseText4(a): if len(a) == 0: return reverseText4(a[1:]) print(a[0], end='') a = 'example' reverseText4(a) | cs |
■ 4. 결과
관련 글
▷ 파이썬 정수 최대값 구하기 소스 2개, random 함수
▷ 파이썬 정렬 소스, 숫자 문자열 예제 6개 sorted join
ⓒ written by vicddory
반응형