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

Python for 루프 완벽 가이드: range, 역순 반복부터 iterable 순회까지

Python의 for 루프는 여러 개의 요소나 특정 정수 범위를 반복적으로 순회할 때 사용하는 구문입니다. 순회 대상은 배열(리스트), 문자열 등 Python에서 반복 가능한(iterable) 객체라면 무엇이든 될 수 있습니다.

for 루프는 Python에서 가장 널리 쓰이는 반복문으로, 우리가 마주치는 대부분의 프로그래밍 문제도 해결 과정에서 for 루프를 활용합니다.

1. range()를 이용한 for 루프

Python은 range 함수와 함께 사용하는 for 루프를 제공합니다. range는 변수가 순회해야 할 범위를 지정하는 두 개의 정수 값을 받습니다. 만약 정수 매개변수를 하나만 전달하면, 그 값은 범위의 끝값으로 간주되고 시작값은 기본적으로 0이 됩니다.

문법

for 변수 in range(시작값, 끝값)
for 변수 in range(끝값)

참고: Python의 for 루프는 끝값보다 하나 적은 수까지 반복합니다. 즉, 시작값과 끝값이 각각 1과 5라면 루프는 1, 2, 3, 4까지만 실행됩니다. 시작값은 범위에 포함되지만, 끝값은 포함되지 않습니다.

예제

for i in range(1,5):
    print(i,end=" ")
print()
for i in range(5):
    print(i,end=" ")

출력 결과

1 2 3 4
0 1 2 3 4

2. 역순으로 반복하는 for 루프

range를 이용한 for 루프에 세 번째 매개변수로 -1을 지정하면, 루프가 역순으로 반복됩니다. 이 경우 루프는 시작값에서 출발하여 끝값(미포함)까지 감소하는 순서로 진행됩니다.

예제

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

출력 결과

5 4 3 2 1

3. 세 번째 매개변수(단계) 지정하기

for 루프의 세 번째 매개변수는 다양한 방식으로 루프를 활용할 수 있게 해줍니다. 이 매개변수는 실제로 변수가 한 번에 건너뛸 단계(step)를 의미하며, 별도로 지정하지 않으면 기본값은 1입니다.

  • 세 번째 매개변수가 음수이면 루프가 역순으로 반복되며, 그 절댓값만큼씩 뒤로 건너뛰며 진행됩니다.
  • 세 번째 매개변수가 양수이면 루프가 정방향으로 반복되며, 해당 값만큼씩 앞으로 건너뛰며 진행됩니다.

아래 예제를 통해 살펴보겠습니다.

예제

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

출력 결과

0 2 4 6 8 10
10 8 6 4 2 0

4. iterable 객체를 순회하는 for-in 루프

이 방식의 루프는 문자열이나 배열과 같은 iterable 객체를 순회할 때 사용합니다. 단, 특정 정수 범위를 직접 순회하는 용도로는 사용할 수 없습니다.

문법

for 변수 in iterable_객체

이 루프는 인덱스를 고려하지 않고 iterable 객체의 모든 요소를 하나씩 차례대로 순회합니다. 따라서 인덱스가 필요한 경우에는 range를 이용한 for 루프를 사용해야 합니다.

예제

st="Tutorials"
for i in st:
    print(i,end=" ")
print()
array=[2,4,6,8,10]
for i in array:
    print(i,end=" ")
print()
for i in range(len(array)):
    print(array[i],end=" ")

출력 결과

T u t o r i a l s
2 4 6 8 10
2 4 6 8 10

참고: 위 예제에서 알 수 있듯이, for-in 루프의 변수는 iterable 객체의 요소 자체를 하나씩 담는 반면, range를 이용한 for 루프의 변수는 요소의 인덱스를 담는다는 점이 핵심적인 차이입니다.