[Python TIL] Range 함수와 반복문

KiwiChipKiwiChip
3 min read

Python을 사용하다 보면 숫자 시퀀스를 다루거나 반복문을 작성할 때 range를 자주 사용하게 됩니다.

이 함수는 메모리를 효율적으로 사용하면서 간단한 문법으로 반복 작업을 처리할 수 있게 해주는데요.

이번 글에서는 range의 기본 사용법부터 실수 방지 팁까지 살펴보겠습니다!


1. range 함수란?

range 함수는 다음과 같은 문법으로 사용할 수 있습니다:

range(start, stop, step)
  • start: (선택 사항) 시퀀스의 시작 숫자. 기본값은 0입니다.

  • stop: 시퀀스가 끝나는 숫자 (※ 이 숫자는 포함되지 않습니다!).

  • step: (선택 사항) 숫자 간의 간격. 기본값은 1입니다.

2. range 함수 사용 예제

1) 기본 형태: range(stop)

하나의 인수만 제공하면, start는 기본값인 0이고, stop까지만 지정됩니다. 시퀀스는 stop-1까지 생성됩니다.

for i in range(5):
    print(i)

출력:

0
1
2
3
4

2) 시작과 끝 설정: range(start, stop)

startstop을 지정하여 원하는 범위의 시퀀스를 생성할 수 있습니다.

for i in range(2, 6):
    print(i)

출력:

2
3
4
5

3) 간격 조정: range(start, stop, step)

step 매개변수를 추가하면 숫자가 증가하거나 감소하는 간격을 조정할 수 있습니다.

  • 오름차순 예제:

      for i in range(1, 10, 2):
          print(i)
    

    출력:

      2
      3
      4
      5
    
  • 내림차순 예제:

      for i in range(10, 0, -2):
          print(i)
    

    출력:

      10
      8
      6
      4
      2
    

3. 실수 방지 팁

1) step과 방향이 맞지 않는 경우

start < stop일 때 step이 음수면 반복문이 실행되지 않습니다. 반대로, start > stop일 때 step이 양수여도 실행되지 않습니다:

for i in range(5, 1, 1):  # 출력 없음
    print(i)

2) stop 포함하기

rangestop 값을 포함하지 않습니다. 마지막 값을 포함하려면 stop 값을 1만큼 늘려야 합니다:

for i in range(1, 6):  # 5 포함
    print(i)

4. 실전 활용

1) 내림차순 출력

내림차순으로 숫자를 출력하려면 음의 step을 사용하세요:

for i in range(10, 0, -1):
    print(i, end=" ")

출력:

10 9 8 7 6 5 4 3 2 1

2) 짝수 출력

step을 2로 설정하여 짝수만 출력하는 프로그램을 작성할 수 있습니다:

for i in range(2, 21, 2):
    print(i, end=" ")

출력:

2 4 6 8 10 12 14 16 18 20

3) 리스트와 함께 사용

리스트의 인덱스와 값을 동시에 처리하려면 range(len(list))를 사용할 수 있습니다:

arr = ['a', 'b', 'c', 'd']

for i in range(len(arr)):
    print(f"Index {i}: {arr[i]}")

출력:

Index 0: a
Index 1: b
Index 2: c
Index 3: d

5. 간단한 코딩 문제: 별 출력하기

정수 n이 주어졌을 때, 별(*)을 점점 줄여가며 출력하는 문제를 풀어봅시다. 이 문제는 range의 내림차순과 문자열 연산을 활용한 대표적인 예제입니다.

문제 설명:

  • 입력: 정수 n

  • 출력: 첫 번째 줄에는 별이 n개, 두 번째 줄에는 n-1개, ..., 마지막 줄에는 별이 1개 출력되도록 작성하세요.

코드 예제:

n = int(input("정수를 입력하세요: "))

for i in range(n, 0, -1):
    print("*" * i)

입력 예:

5

출력:

*****
****
***
**
*
0
Subscribe to my newsletter

Read articles from KiwiChip directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

KiwiChip
KiwiChip

I'm currently learning Python and studying RAG (Retrieval-Augmented Generation).