프로그래밍/파이썬(Python)

파이썬(Python) 조건 제어문: for 반복문

프리다이어비티즈 2024. 10. 15. 10:30

for 반복문은 파이썬에서 특정 작업을 반복적으로 수행하기 위해 사용되는 기본적인 제어문 중 하나입니다. 이 반복문은 시퀀스(리스트, 튜플, 문자열, range 등)를 순회하며 각 항목에 대해 코드 블록을 실행합니다. 이번 글에서는 파이썬의 for 반복문의 기본 사용법부터 응용 예제까지 자세히 알아보겠습니다.

공지

본 포스팅의 무단도용 및 배포를 금지합니다.

1. 기본적인 for 반복문 사용법

for 반복문은 시퀀스의 각 요소를 순회하면서 코드 블록을 반복 실행합니다. 기본 구조는 다음과 같습니다.

for item in iterable:
    # 반복할 코드 블록
    print(item)
  • iterable: 리스트, 튜플, 문자열과 같은 시퀀스 자료형입니다.
  • item: 시퀀스의 각 요소를 나타냅니다.

예를 들어, 리스트의 각 요소를 출력하려면 다음과 같이 작성할 수 있습니다.

fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)

출력 결과는 다음과 같습니다:

apple
banana
cherry

이 예제에서는 fruits 리스트의 각 요소를 fruit 변수로 받아 출력합니다.

2. range() 함수와 함께 사용하기

range() 함수는 특정 범위의 숫자를 생성하는 데 사용됩니다. 이를 for 반복문과 함께 사용하면 지정된 횟수만큼 반복할 수 있습니다.

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

출력 결과는 다음과 같습니다:

0
1
2
3
4
  • range(5)는 0부터 4까지의 숫자를 생성하며, i는 각 숫자를 순회하면서 반복문을 실행합니다.

range() 함수는 세 가지 형태로 사용할 수 있습니다:

  • range(stop): 0부터 stop 미만의 숫자를 생성합니다.
  • range(start, stop): start부터 stop 미만의 숫자를 생성합니다.
  • range(start, stop, step): start부터 stop 미만까지 step 간격으로 숫자를 생성합니다.
for i in range(1, 10, 2):
    print(i)

출력 결과는 다음과 같습니다:

1
3
5
7
9

이 예제에서는 1부터 9까지 2씩 증가하는 숫자를 출력합니다.

 

3. 리스트 컴프리헨션을 이용한 반복문

리스트 컴프리헨션(list comprehension)은 for 반복문을 사용하여 간결하게 리스트를 생성하는 방법입니다.

squares = [x ** 2 for x in range(10)]
print(squares)

출력 결과는 다음과 같습니다:

[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

이처럼 리스트 컴프리헨션을 사용하면 짧은 코드로 효율적으로 리스트를 생성할 수 있습니다.

4. for 반복문과 조건문 함께 사용하기

for 반복문 안에서 if 조건문을 사용하여 특정 조건에 따라 동작을 수행할 수 있습니다.

numbers = [1, 2, 3, 4, 5, 6]
for num in numbers:
    if num % 2 == 0:
        print(f"{num} is even")

출력 결과는 다음과 같습니다:

2 is even
4 is even
6 is even

이 예제에서는 numbers 리스트의 각 요소를 순회하면서, 짝수인 경우에만 출력합니다.

 

5. 중첩 반복문

for 반복문은 다른 for 반복문 안에 중첩하여 사용할 수 있습니다. 이를 통해 2차원 리스트나 행렬과 같은 자료 구조를 순회할 수 있습니다.

matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

for row in matrix:
    for value in row:
        print(value, end=" ")
    print()

출력 결과는 다음과 같습니다:

1 2 3
4 5 6
7 8 9

이 예제에서는 2차원 리스트 matrix의 각 행을 순회하고, 각 행의 요소를 다시 순회하여 출력합니다.

 

6. break와 continue 사용하기

  • break: 반복문을 즉시 종료합니다.
  • continue: 반복문의 현재 순회를 건너뛰고 다음 순회로 넘어갑니다.
for i in range(10):
    if i == 5:
        break
    print(i)

출력 결과는 다음과 같습니다:

0
1
2
3
4

i가 5일 때 break가 실행되어 반복문이 종료됩니다.

for i in range(10):
    if i % 2 == 0:
        continue
    print(i)

출력 결과는 다음과 같습니다:

1
3
5
7
9

i가 짝수일 때 continue가 실행되어 해당 순회를 건너뛰고 다음 순회로 넘어갑니다.

 

7. else와 함께 사용하는 for 반복문

for 반복문은 else 블록을 가질 수 있습니다. 반복문이 정상적으로 종료되었을 때 else 블록이 실행됩니다. 만약 break로 인해 반복문이 종료되면 else 블록은 실행되지 않습니다.

for i in range(5):
    print(i)
else:
    print("Loop completed without break.")

출력 결과는 다음과 같습니다:

0
1
2
3
4
Loop completed without break.

반복문이 끝까지 실행되었기 때문에 else 블록이 실행됩니다.

for i in range(5):
    if i == 3:
        break
    print(i)
else:
    print("Loop completed without break.")

출력 결과는 다음과 같습니다:

0
1
2

i가 3일 때 break가 실행되어 반복문이 종료되었으므로 else 블록은 실행되지 않습니다.

 

8. 사람들이 자주 묻는 질문들

8.1 for 반복문과 while 반복문의 차이점은 무엇인가요?

  • for 반복문은 시퀀스의 각 요소를 순회하거나 정해진 횟수만큼 반복할 때 사용합니다.
  • while 반복문은 조건이 참인 동안 계속 반복합니다. 반복 횟수가 불명확하거나 조건에 따라 반복을 종료해야 할 때 사용합니다.

 

8.2 for 반복문에서 인덱스를 얻으려면 어떻게 해야 하나요?

enumerate() 함수를 사용하면 반복문에서 시퀀스의 요소와 함께 인덱스를 얻을 수 있습니다.

fruits = ["apple", "banana", "cherry"]
for index, fruit in enumerate(fruits):
    print(f"Index: {index}, Fruit: {fruit}")

출력 결과는 다음과 같습니다:

Index: 0, Fruit: apple
Index: 1, Fruit: banana
Index: 2, Fruit: cherry

 


파이썬의 for 반복문은 시퀀스를 효율적으로 순회하고 반복 작업을 수행할 수 있는 매우 유용한 도구입니다. 기본 사용법부터 리스트 컴프리헨션, 중첩 반복문, break와 continue, 그리고 else와의 조합까지 다양한 기능을 제공하여 복잡한 반복 작업을 간단하고 명확하게 처리할 수 있습니다. 이번 글이 for 반복문을 이해하고 활용하는 데 도움이 되었길 바랍니다. 추가로 궁금한 점이 있다면 언제든지 문의해주세요.