Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

반복문 없이 1부터 N까지 숫자를 출력하는 파이썬 프로그램 – 재귀 함수 활용법

주어진 범위 안의 숫자들을 forwhile 같은 반복문 없이 출력해야 하는 상황이라면, 재귀(recursion)를 활용한 함수를 정의하면 간단하게 해결할 수 있습니다. 이 방식은 상위 범위 값부터 시작해 숫자를 하나 출력할 때마다 값을 1씩 감소시키며 자기 자신을 다시 호출하는 원리로 동작합니다.

예제 코드

def print_nums(upper_num):
    if(upper_num>0):
        print_nums(upper_num-1)
        print(upper_num)

upper_lim = 6
print("상한값은 :")
print(upper_lim)
print("출력되는 숫자들 :")
print_nums(upper_lim)

실행 결과

상한값은 :
6
출력되는 숫자들 :
1
2
3
4
5
6

코드 설명

  • print_nums라는 이름의 재귀 함수가 정의됩니다.

  • 함수는 먼저 매개변수로 받은 상한값이 0보다 큰지 검사합니다.

  • 조건이 참이면, 자기 자신을 upper_num - 1 인자와 함께 다시 호출합니다.

  • 재귀 호출이 가장 깊은 지점(숫자 1)에 도달한 뒤 되돌아오면서 각 숫자가 오름차순으로 화면에 출력됩니다.

  • 매번 호출될 때마다 상한값이 1씩 감소하며, 값이 0에 도달하면 재귀가 종료됩니다.

  • 함수 외부에서 상한값(upper_lim = 6)이 정의되고, 이 값을 인자로 전달해 함수를 호출합니다.

  • 최종 결과가 콘솔에 출력됩니다.

참고 사항

재귀 방식은 코드가 간결하다는 장점이 있지만, 파이썬은 기본적으로 최대 재귀 깊이(약 1000회)가 제한되어 있습니다. 따라서 이 방법은 범위가 작거나 중간 정도일 때 적합하며, 매우 큰 숫자 범위를 처리해야 한다면 sys.setrecursionlimit()으로 한도를 조정하거나 반복문 방식을 사용하는 것이 좋습니다.