Computer >> 컴퓨터 >  >> 시스템 >> Linux

파이썬 While 루프 완벽 가이드: 기본 개념부터 실전 활용법까지

파이썬 While 루프 완벽 가이드: 기본 개념부터 실전 활용법까지

코딩은 물론 다른 사람에게 도움이 되는 것을 만드는 작업입니다. 하지만 프로그램과 소프트웨어를 만드는 일의 핵심은 무엇보다 반복적이거나 복잡한 작업을 자동화하는 데 있습니다. 파이썬의 while 루프를 사용하면 코드 블록을 반복 실행하여 여러 작업을 한 번에 자동화할 수 있습니다.

이 글에서는 파이썬 while 루프의 사용 방법을 알아보겠습니다. 먼저 while 루프가 어떤 역할을 하는지, 그리고 어떤 상황에서 가장 적합한지 살펴보겠습니다.

파이썬 while 명령어란?

while 루프를 직접 만들어 보기 전에, 기본 개념부터 짚고 넘어가겠습니다. 간단히 말해 while 명령어는 특정 조건(표현식)이 충족될 때까지 정의된 코드 블록(문장)을 계속 실행하는 구문입니다.

파이썬 While 루프 완벽 가이드: 기본 개념부터 실전 활용법까지

이 조건은 '부울(Boolean) 컨텍스트'에서 평가됩니다. 즉, 표현식이 True(참)인 동안에는 코드가 계속 실행되고, False(거짓)가 되면 루프가 멈춥니다.

뒤에서 살펴보겠지만 while 명령어는 놀라울 정도로 간결합니다. 단 몇 줄의 코드만으로도 다양한 작업을 처리할 수 있습니다.

파이썬으로 while 루프를 사용해야 하는 이유

while 루프는 틈새적인 기능이 아니라 코드 곳곳에서 널리 활용되는 핵심 요소입니다. 다음과 같은 상황을 생각해 볼 수 있습니다.

  • 사용자가 종료를 원할 때까지 프로그램을 계속 실행해야 하는 경우
  • Django나 Flask로 웹사이트를 구축하면서 MySQL 또는 MariaDB 데이터베이스에서 데이터를 자주 가져오는 경우
  • 작성한 스크립트가 대량의 스프레드시트 데이터를 전체적으로 분석하고 특정 작업을 수행해야 하는 경우

이처럼 while 루프는 유연하고 강력한 도구이며, 위 예시 외에도 무궁무진한 활용 분야가 있습니다.

다만 whilefor 같은 다른 반복문에 비해 좀 더 기본적인 명령어에 해당합니다. 요약하자면, while은 for보다 장기간에 걸쳐 코드를 실행할 때 사용됩니다. for 루프는 숫자 범위를 다루기 때문에 항상 자연스러운 종료 지점이 존재합니다.

파이썬으로 while 루프 만드는 방법

while 루프를 만들려면 명령어를 정의하고 측정 가능한 조건을 제시해야 합니다. 사실 두 줄이면 충분합니다.

while True:
    print("True!")

하지만 위 코드는 끝나지 않는 '무한 루프(infinite loop)'를 발생시킵니다. 직접 실행해 볼 수도 있지만, 터미널 세션을 강제로 종료할 방법을 미리 확인해 두세요!

게임 루프 예제

게임 루프의 예를 들자면, 다음과 같이 작성할 수 있습니다.

running = '-1'
 
while running != 1:
    run_game()

코드를 하나씩 살펴보겠습니다. 먼저 특정 값으로 변수를 정의합니다. 일반적으로는 프로그램 내에서 절대 등장하지 않을 값을 선택하는 것이 좋습니다.

다음으로 while 루프를 시작하고 그 표현식에 변수를 사용합니다. 여기서는 "running이 1이 아닌 동안 이 루프를 시작하라"는 의미입니다. 당연히 running은 1이 아니므로 루프가 run_game() 함수를 호출합니다. 루프를 빠져나오고 싶다면 run_game() 함수 내부에서 이 변수의 값을 변경하면 됩니다.

break로 루프 탈출하기

그러나 이것만으로는 절반의 작업밖에 완료되지 않습니다. while 루프에서 벗어나려면 루프 안에 if 문을 중첩하고 break 명령어를 사용하는 방법이 있습니다. 다음 예제를 보세요.

list = ['a', 'b', 'c']
 
while True:
    if not list:
        break
    print(list.pop(-1))

여기서 while 루프는 True 조건으로 시작되며, 리스트에서 항목을 하나씩 꺼내(pop) 출력합니다. 리스트가 비게 되면 표현식이 False가 되어 while 루프가 종료됩니다.

마치며

코드를 자동화하는 것은 효율성을 높이는 한 가지 방법입니다. 나아가 복잡한 동작을 구현하고 최종 사용자에게 강력한 기능을 제공할 수도 있습니다. 파이썬의 while 루프는 다루기 까다로운 야생마와 같지만, 한번 길들이면 업무 흐름에서 없어서는 안 될 필수 도구가 될 것입니다.

다른 파이썬 코딩 주제에 관심이 있다면, 이전에 발행한 파이썬 3 가이드도 확인해 보세요. 파이썬 while 루프를 사용해 볼 계획이 있으신가요? 어떤 용도로 활용하실지 댓글로 알려주세요!