파이썬은 오늘날 가장 널리 사용되는 언어 중 하나입니다. 거의 모든 다른 프로그래밍 언어와 마찬가지로 파이썬에도 루프 구조가 있습니다. for 루프와 while 루프와 같은 파이썬 루프는 개발자가 컬렉션을 반복하거나 다양한 조건에 따라 반복할 수 있도록 합니다.
이 자습서에서는 각 유형의 파이썬 루프를 생성하고 사용하는 방법, 그리고 break
, pass
, continue
파이썬 문을 사용하여 루프를 제어하는 방법을 배우게 됩니다.
시작해 봅시다!
전제 조건
이 게시물은 단계별 자습서가 될 것입니다. 함께 따라 하려면 Python v3.6 이상이 설치되어 있는지 확인하십시오. 이 자습서에서는 Windows 10 머신에서 Python v3.9.2를 사용할 것입니다.
이터러블 파이썬 구조 이해
루프를 배우기 전에 파이썬 이터러블 개념에 대해 알아야 합니다. 루프는 리스트, 튜플, 사전과 같은 요소의 컬렉션을 처리합니다. 이러한 구조 각각에는 “반복(iterate)”할 수 있는 여러 요소가 포함되어 있습니다. 따라서 각 구조는 루프가 개별적으로 처리할 수 있는 요소를 포함하는 이터러블입니다.
누군가가 무언가가 반복 가능하다고 언급하면, 이는 해당 컬렉션 내의 각 객체를 루프로 읽을 수 있는 요소임을 알아두세요.
파이썬 For 루프
이 강좌를 시작하려면 먼저 for 루프를 배우세요. for 루프는 반복 가능한 표현식에 의해 제어되는 문 또는 문 블록의 실행을 반복합니다. 다시 말해, 이들은 요소 컬렉션 내의 각 항목에 대해 코드를 실행합니다.
For 루프와 문자열
예를 들어, 문자열과 같은 반복 가능한 항목이 있다고 가정해 봅시다. 파이썬에서 문자열은 문자의 시퀀스입니다. 각 문자열은 문자의 조합으로 구성됩니다. 문자열 ADAM
이라는 문자열이 있다고 가정해 봅시다. 이 문자열은 네 개의 반복 가능한 문자, A
, D
, A
, 및 M
으로 구성됩니다.
하나의 문자열로서, 파이썬은 아래에 표시된대로 ADAM
라는 하나의 요소만 볼 수 있습니다.

그러나 파이썬 문자열은 반복 가능하기 때문에 파이썬은 그 문자열을 문자 배열로 “분해”하고 각 문자를 한 번에 처리할 수 있습니다. 이를 위해 아래와 같이 for 루프를 만들 것입니다.
for 루프에는 각 반복을 나타내는 대상 또는 이터레이터 (letter
의 경우)가 있습니다. 그런 다음 파이썬에게 in
키워드를 사용하여 처리할 반복 가능한 요소 (ATA
)를 알려줄 것입니다. 문자 배열의 각 문자는 문자열에 있는 in입니다.
그런 다음 for 루프 내에서 각 반복에 대해 실행할 코드를 작성할 수 있습니다. 이 예에서는 파이썬이 간단히 문자 배열 (문자열)의 각 문자를 출력하는 것뿐입니다.
아래에서 파이썬은 문자열의 각 문자를 하나씩 출력합니다.

for 루프는 목록과 범위와 같은 반복 가능한 요소를 반복할 수 있습니다. 이 섹션의 예제에서
ATA
를range(5)
로 바꾸면 동일한 결과를 볼 수 있습니다.
파이썬 While 루프
for 루프는 요소 컬렉션의 각 항목에 대해 코드를 실행하는 반면, while 루프는 특정 조건에 따라 코드를 실행합니다. 더 구체적으로 말하면, 파이썬은 while 루프가 조건이 거짓인 동안 계속 실행합니다.
예를 들어, 파이썬에서 일반적인 요구 사항은 카운터를 만들고 정의된 횟수만큼 코드를 실행하는 것입니다. 이 상황을 만들기 위해 현재 카운트가 최대 카운트를 초과할 때 True를 반환하는 condition
을 정의해야 합니다.
예를 들어, 정수 0을 저장하는 count
라는 변수로 시작합니다. 이 정수를 1씩 증가시키지만 5를 초과하지 않도록 하려면 다음과 같이 작성할 수 있습니다:
위의 방법은 작동할 수 있지만 매우 비효율적입니다. DRY 원칙을 사용하지 않고 자신을 반복하고 있습니다. 대신, while 루프를 사용하여 코드 길이를 줄이고 count
가 여섯보다 작은 동안에는 count
에 1을 더하도록 파이썬에 지시합니다.
아래 예제는 while 루프를 사용하여 조건(count < 6
)을 정의하고 표현식(print
문과 count
를 1씩 증가)을 실행하는 방법을 보여줍니다. 조건이 True
인 동안 while입니다.

반복문에서의 흐름 제어
이전 두 예제에서 파이썬의 for와 while 루프는 각각 자체적으로 시작하고 끝났습니다. for 루프는 반복 가능한 컬렉션의 끝에 도달하여 종료되었고, while 루프는 조건이 `True`로 평가되어 종료되었습니다.
파이썬 루프가 “보통” 종료되는 것이 일반적이지만, 루프의 동작을 조기 종료하거나 하나 이상의 반복을 건너뛸 수도 있습니다.
Break 문
루프를 조기 종료해야 할 때는 `break` 문을 사용하여 그렇게 할 수 있습니다. 루프 내에서 실행될 때 `break` 문은 현재 반복에서 루프를 중지합니다.
일반적으로 특정 조건이 루프 내에서 충족될 때 `break` 문을 사용합니다. 예를 들어, 이전 for 루프 예제에서 문자열의 문자 배열을 반복하는 방법을 배웠습니다. 아마도 첫 번째 D
까지의 모든 문자를 처리하고 싶을 것입니다.
for 루프 (또는 while 루프)를 중지하려면 일치하는 특정 조건을 정의한 다음 아래와 같이 `break` 문을 포함하면 됩니다.
아래 예제에서 파이썬은 반복자 변수 letter
가 D
와 같을 때 바로 for 루프를 종료합니다.

Continue 문
특정 조건에 기반하여 루프를 생성해야 하지만 모든 반복 가능한 요소를 처리하고 싶지는 않은 경우, `continue` 문을 사용하여 반복을 건너뛸 수 있습니다.
다음과 같은 전자 break
문과는 달리 continue
문은 현재 반복을 건너뜁니다. 위의 예제를 사용하여 문자열 ADAM
의 각 문자를 반복하지만 D
문자를 건너뛰고 싶을 수 있습니다. 아래에 표시된대로 조건문 (if letter == "D"
)과 continue
문을 사용하여 D
문자를 건너뛸 수 있습니다.
아래에서 볼 수 있듯이 continue
문이 D
문자를 만나면 print
문을 건너뛰었으므로 Python은 D
문자를 반환하지 않았습니다.

Pass 문
이제 pass
문으로 흐름 제어 섹션을 마무리해 봅시다. pass
문은 실제로 아무 작업도 수행하지 않는 플레이스홀더입니다.
예를 들어, Python 스크립트에서 남겨두고 싶은 for 루프가 있다고 가정해 보겠습니다. 그러나 내부에서 실행할 표현식이 실제로 없는 경우, 아래와 같습니다.
Python에서 내부에 표현식이 있는 for 루프를 정의하면 아래와 같이 IdentationError가 발생합니다.

그러나 for
루프 내부에 표현식으로 pass
문을 추가하면 Python이 본질적으로 아무것도 수행하지 않고 for 루프를 실행하는 것을 볼 수 있습니다.

결론
이 튜토리얼에서는 Python 루프를 시작하는 방법에 대해 배웠습니다. Python 루프가 어떻게 작동하는지 배우고 그들을 제어하는 방법을 배우면 더 많은 기회를 얻어 Python 프로그램을 만들고 구축할 수 있습니다.
새롭게 습득한 지식을 바탕으로 코드 어디에 루프를 삽입할 것인가요?