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

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

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

목차

     

    공지

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

    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 반복문을 이해하고 활용하는 데 도움이 되었길 바랍니다. 추가로 궁금한 점이 있다면 언제든지 문의해주세요.

    반응형