파이썬 강좌: while 문
파이썬에서 루프를 만드는 데는 주로 두 가지 방법이 있습니다. 바로 for
문과 while
문입니다. 이 강좌에서는 while
문의 작동 원리와 어떻게 사용하는지 자세히 배워보겠습니다. while
문은 주어진 조건이 True
인 동안 계속해서 블록의 코드가 실행되도록 합니다.
while 문의 기본 구조
while
문의 기본 구문은 다음과 같습니다:
while 조건식:
실행할 코드 블록
(보통 조건이 거짓이 되도록 만드는 코드가 포함되곤 합니다)
간단히 말하자면, while 문의 경우에는 조건식이 참일 때마다 아래의 코드 블록이 반복해서 실행됩니다. 그리고 조건식이 거짓이 되면 루프는 종료됩니다. 이제 간단한 while
문의 예제를 알아보겠습니다.
기본 예제
예제를 통해 while
문이 어떻게 동작하는지 살펴보겠습니다. 여기서는 1부터 5까지의 숫자를 출력하는 간단한 예제를 보겠습니다.
i = 1
while i <= 5:
print(i)
i += 1
이 예제에서는 초기 변수 i
가 1로 설정됩니다. while
문은 i <= 5
의 조건식이 참이면 루프를 계속해서 실행합니다. 루프 안에서 i
의 값을 출력하고, i
에 1을 더해줍니다. 결국, i
가 6이 되면 조건식이 거짓으로 평가되어 루프가 종료됩니다.
무한 루프
조건식이 항상 참이면 while
문은 무한 루프에 빠질 수 있습니다. 이는 프로그램이 멈추지 않고 계속해서 실행됨을 의미합니다. 무한 루프는 보통 상황에 맞게 끝내주는 제어 장치와 함께 사용할 때 유용할 수 있습니다.
while True:
사용자 입력 = input("종료하려면 'q'를 입력하세요: ")
if 사용자 입력 == 'q':
break
위 코드는 True
라는 조건으로 인해 무한히 실행되지만, 사용자가 ‘q’를 입력하면 break
문을 통해 루프를 종료하게 됩니다.
while 문과 함께 쓰이는 else 블록
while
문에는 else
문을 붙일 수도 있습니다. else
블록은 while
문 블록이 끝난 후에 실행됩니다. 단, 루프가 break
문에 의해서 종료된 경우에는 실행되지 않습니다.
i = 1
while i <= 5:
print(i)
i += 1
else:
print("루프가 자연스럽게 종료되었습니다.")
이 코드에서는 i
가 6이 되었을 때 `while`이 종료되고, else
블록의 문장이 실행됩니다.
실제 사례로 보는 while 문의 활용
예제를 통해 while
문을 사용하는 몇 가지 유용한 방법을 알아보겠습니다. 각 예제는 더 복잡한 문제를 해결하기 위해 while
문을 어떻게 사용할 수 있는지 보여줍니다.
사용자 입력 검증
사용자의 입력을 받고, 올바른 입력이 들어올 때까지 계속해서 요청하는 프로그램을 작성할 수 있습니다.
while True:
number_str = input("숫자를 입력하세요: ")
try:
number = int(number_str)
break
except ValueError:
print("유효한 숫자가 아닙니다. 다시 시도하세요.")
이 경우 사용자가 숫자를 입력할 때까지 계속해서 입력을 받습니다. 잘못된 입력을 받으면 오류 메시지를 출력합니다.
파일의 끝까지 읽기
파일을 한 줄씩 읽다가 더 이상 읽을 데이터가 없으면 종료하는 프로그램을 작성할 수 있습니다.
with open('some_file.txt', 'r') as file:
line = file.readline()
while line:
print(line, end='')
line = file.readline()
이 코드는 파일을 열고, 각 줄을 순차적으로 읽어오는 동안 그 내용을 출력합니다. 더 이상 읽을 줄이 없으면 루프가 종료됩니다.
while 문을 사용할 때 주의할 점
while
문을 사용할 때는 무한 루프에 빠지지 않도록 조건을 명확히 설정하는 것이 중요합니다. 무한 루프는 종종 프로그램을 멈추게 하고, 의도하지 않은 상황을 만들 수 있습니다. 따라서 루프 안에서 조건을 적절히 변경하거나 break
같은 문을 사용하여 루프가 의도대로 종료될 수 있도록 해야 합니다.
또한, while
문을 사용할 때 루프의 실행 횟수가 적절히 제한되지 않는다면 성능 문제가 발생할 수 있습니다. 오래 걸리는 처리를 최소화하기 위해 루프 내에서의 연산을 최적화하고 불필요한 작업을 방지하는 것이 중요합니다.
결론
이제 while
문이 어떻게 동작하는지 이해하고, 이를 다양한 상황에서 사용할 수 있는 방법을 배웠습니다. while
문은 주어진 조건이 참인 동안 반복해서 실행되는 강력한 구조이며, 무한 루프나 사용자 입력 검증 등의 다양한 시나리오에서 사용할 수 있습니다. 이 강좌를 통해 여러분이 while
문을 자신 있게 사용할 수 있게 되기를 바랍니다.