Python 루프 이해하기

PythonBeginner
지금 연습하기

소개

본 랩에서는 반복적인 작업을 자동화하는 데 필수적인 도구인 Python 의 루프 (loop) 에 대한 기본적인 이해를 얻게 됩니다. 먼저 for 루프와 반복 (iteration) 개념을 탐색하며 리스트나 문자열과 같은 시퀀스를 처리하는 방법을 배웁니다.

이어서 for 루프와 함께 range() 함수를 사용하여 숫자 시퀀스를 생성하는 방법을 알아봅니다. 그런 다음 조건 기반 반복을 위한 while 루프를 소개합니다. 마지막으로 breakcontinue 문을 사용하여 for 루프와 while 루프 모두의 흐름을 제어하는 방법을 학습합니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 100%입니다.학습자들로부터 100%의 긍정적인 리뷰율을 받았습니다.

For 루프 및 반복 소개

이 단계에서는 Python 의 for 루프에 대해 배웁니다. for 루프는 리스트, 튜플 또는 문자열과 같은 시퀀스를 반복 (iterate) 하는 데 사용됩니다. 반복한다는 것은 시퀀스 내의 각 항목에 대해 순차적으로 작업을 수행하는 것을 의미합니다.

먼저, for 루프를 사용하여 리스트의 각 요소를 출력해 보겠습니다.

왼쪽에 있는 WebIDE 파일 탐색기에서 파일 목록을 볼 수 있습니다. for_loop_example.py라는 파일을 찾아 엽니다. 다음 Python 코드를 파일에 추가합니다.

## Define a list of numbers
numbers = [1, 2, 3, 4, 5]

## The for loop iterates over each item in the 'numbers' list.
## In each iteration, the current item is assigned to the 'number' variable.
for number in numbers:
  ## This code block is executed for each item.
  print(number)

Ctrl + S를 눌러 파일을 저장합니다.

스크립트를 실행하려면 WebIDE 상단의 Terminal -> New Terminal을 클릭하여 통합 터미널을 엽니다. 그런 다음 다음 명령을 실행합니다.

python for_loop_example.py

각 숫자가 새 줄에 출력되는 다음 출력을 보게 될 것입니다.

1
2
3
4
5

for 루프는 문자열도 반복할 수 있습니다. 새 파일에서 이를 시도해 보겠습니다. 파일 탐색기에서 string_loop.py 파일을 열고 다음 코드를 추가합니다.

## Define a string
message = "Hello"

## Iterate over each character in the 'message' string
for char in message:
  ## Print each character
  print(char)

파일을 저장하고 터미널에서 실행합니다.

python string_loop.py

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

H
e
l
l
o

이는 for 루프가 문자열을 문자의 시퀀스로 취급하여 모든 시퀀스를 처리할 수 있음을 보여줍니다.

For 루프에서 range() 함수 사용하기

range() 함수는 특정 횟수만큼 작업을 반복해야 할 때 유용한, for 루프와 함께 자주 사용되는 강력한 도구입니다. 숫자 시퀀스를 생성하는 데 사용됩니다.

range() 함수는 세 가지 방식으로 사용될 수 있습니다.

  • range(stop): 0 부터 stop 직전까지의 숫자를 생성합니다.
  • range(start, stop): start부터 stop 직전까지의 숫자를 생성합니다.
  • range(start, stop, step): start부터 stop까지 step 간격으로 숫자를 생성합니다.

이것이 어떻게 작동하는지 살펴보겠습니다. 파일 탐색기에서 range_example.py 파일을 열고 다음 코드를 추가합니다.

## Use range(stop) to print numbers from 0 to 4
print("Numbers from 0 to 4:")
for i in range(5):
  print(i)

print("\n" + "="*20 + "\n") ## A separator for clarity

## Use range(start, stop) to print numbers from 2 to 5
print("Numbers from 2 to 5:")
for i in range(2, 6):
  print(i)

print("\n" + "="*20 + "\n") ## A separator for clarity

## Use range(start, stop, step) to print odd numbers from 1 to 9
print("Odd numbers from 1 to 9:")
for i in range(1, 10, 2):
  print(i)

파일을 저장하고 터미널에서 실행합니다.

python range_example.py

다음과 같은 출력을 보게 될 것입니다.

Numbers from 0 to 4:
0
1
2
3
4

====================

Numbers from 2 to 5:
2
3
4
5

====================

Odd numbers from 1 to 9:
1
3
5
7
9

stop 값은 시퀀스에 포함되지 않는다는 점에 유의하십시오. 작업을 고정된 횟수만큼 수행해야 하지만 카운터 값은 필요하지 않은 경우, 변수 이름으로 밑줄 _을 사용할 수 있습니다. 이는 Python 에서 일반적인 관례입니다.

## This loop will execute 5 times
for _ in range(5):
  print("Hello")

While 루프 소개

이 단계에서는 while 루프에 대해 배웁니다. for 루프가 정해진 횟수만큼 반복하는 것과 달리, while 루프는 지정된 조건이 True인 동안 계속해서 실행됩니다.

while 루프의 기본 구문은 다음과 같습니다.

while condition:
  ## Code to execute
  ## IMPORTANT: Update a variable to eventually make the condition False

조건이 결국 거짓 (False) 이 되도록 변수를 업데이트하는 것이 매우 중요합니다. 그렇지 않으면 프로그램이 영원히 실행되게 만드는 **무한 루프 (infinite loop)**를 만들게 됩니다.

while 루프를 사용하여 1 부터 5 까지의 숫자를 출력하는 스크립트를 만들어 보겠습니다. while_loop_example.py 파일을 열고 다음 코드를 추가합니다.

## Initialize a counter variable
count = 1

## The loop continues as long as 'count' is less than or equal to 5
while count <= 5:
  ## Print the current value of count
  print(count)
  ## Increment count by 1. This is essential to prevent an infinite loop.
  count = count + 1 ## This can also be written as count += 1

파일을 저장하고 터미널에서 실행합니다.

python while_loop_example.py

다음과 같은 출력을 보게 될 것입니다.

1
2
3
4
5

루프가 작동하는 방식은 다음과 같습니다.

  1. count1로 초기화됩니다.
  2. 조건 count <= 5가 확인됩니다. 1 <= 5True이므로 루프 본문이 실행됩니다.
  3. 1이 출력되고 count2로 증가합니다.
  4. 조건이 다시 확인됩니다. 2 <= 5True이므로 루프가 계속됩니다.
  5. 이 과정은 count6이 될 때까지 반복됩니다.
  6. count6일 때, 조건 6 <= 5False가 되어 루프가 종료됩니다.

반복 횟수를 미리 알고 있을 때는 for 루프를 사용합니다. 실행 중에 변경될 수 있는 조건에 따라 반복이 결정될 때는 while 루프를 사용합니다.

break 및 continue 를 사용하여 루프 흐름 제어하기

Python 은 루프의 일반적인 흐름을 변경하기 위해 breakcontinue라는 두 가지 구문 (statement) 을 제공합니다.

break 구문은 현재 속한 루프를 즉시 종료합니다. 실행은 루프 다음의 첫 번째 구문으로 계속됩니다.

예시를 살펴보겠습니다. break_example.py 파일을 열고 특정 조건이 충족될 때 루프를 중지하는 다음 코드를 추가합니다.

## Iterate through numbers from 0 to 9
for i in range(10):
  ## If i is 5, the 'if' condition becomes True
  if i == 5:
    print(f"Breaking loop at i = {i}")
    ## The break statement exits the loop immediately
    break
  print(i)

print("Loop finished.")

파일을 저장하고 실행합니다.

python break_example.py

출력은 다음과 같습니다.

0
1
2
3
4
Breaking loop at i = 5
Loop finished.

i5가 되었을 때 루프가 중지되었으며, 5부터 9까지의 숫자는 출력되지 않았습니다.

continue 구문은 현재 반복 (iteration) 의 나머지 부분을 건너뛰고 다음 반복으로 진행합니다.

continue를 사용하여 특정 숫자의 출력을 건너뛰는 방법을 살펴보겠습니다. continue_example.py 파일을 열고 다음 코드를 추가합니다.

## Initialize a counter
count = 0

## Loop while count is less than 10
while count < 10:
  count += 1
  ## If count is 5, the 'if' condition becomes True
  if count == 5:
    print(f"Skipping iteration at count = {count}")
    ## The continue statement skips the rest of this iteration
    continue
  ## This line is skipped when count is 5
  print(count)

print("Loop finished.")

파일을 저장하고 실행합니다.

python continue_example.py

출력은 다음과 같습니다.

1
2
3
4
Skipping iteration at count = 5
6
7
8
9
10
Loop finished.

이 경우, count5일 때 continue 구문이 실행되었습니다. 이로 인해 해당 반복에서는 print(count) 줄이 건너뛰어졌고, 루프는 count6이 되는 다음 반복으로 넘어갔습니다.

요약

본 실습 (lab) 에서는 Python 의 루프 (loop) 기본 사항을 배웠습니다. 리스트나 문자열과 같은 시퀀스 (sequence) 를 반복하는 데 사용되는 for 루프로 시작했습니다. 그런 다음 range() 함수를 탐색하여 for 루프를 위한 숫자 시퀀스를 생성했습니다.

다음으로, 조건이 참인 동안 실행되는 루프를 만들기 위해 while 루프를 소개받았습니다. 마지막으로, 루프를 조기에 종료하는 break 구문과 한 번의 반복을 건너뛰는 continue 구문을 사용하여 루프 실행을 제어하는 방법을 배웠습니다. 이러한 개념들은 효율적이고 강력한 Python 프로그램을 작성하는 데 기초가 됩니다.