티스토리 뷰
파이썬에서 while문은 조건이 참일 때 특정 코드를 반복 실행하는 제어 구조입니다. 반복문의 대표적인 형태로, 루프의 종료 조건을 명시하지 않으면 무한히 실행될 수 있습니다.
이번 글에서는 while문의 기본 사용법과 다양한 예제를 통해 파이썬의 반복문을 이해해 보겠습니다.
👇👇👇 자세히보기 👇👇👇
while문의 기본 구조
파이썬의 while문은 다음과 같은 구조로 이루어져 있습니다:
while 조건:
실행할 코드
- 조건: 불리언 표현식으로,
True
일 경우 코드 블록이 실행되고,False
가 되면 루프가 종료됩니다. - 실행할 코드: 조건이 참일 때 반복적으로 실행되는 코드입니다.
간단한 예제: 1부터 5까지 출력하기
i = 1
while i <= 5:
print(i)
i += 1
위 코드는 i
가 5보다 작거나 같을 때까지 i
를 출력하고, 매번 i
에 1을 더합니다. 결과적으로 1부터 5까지의 숫자가 출력됩니다.
다양한 while문 예제
1. 사용자 입력을 통한 반복 제어
사용자에게 입력을 받아 특정 조건이 충족될 때까지 반복하는 프로그램을 만들 수 있습니다. 아래 예제는 사용자가 'exit'를 입력할 때까지 계속해서 입력을 받습니다.
while True:
user_input = input("종료하려면 'exit'를 입력하세요: ")
if user_input.lower() == 'exit':
print("프로그램을 종료합니다.")
break
else:
print(f"입력한 내용: {user_input}")
2. 무한 루프와 break
문
무한 루프는 특정 조건이 충족될 때까지 계속해서 반복되는 루프입니다. 이를 종료하려면 break
문을 사용해야 합니다.
i = 0
while True:
i += 1
if i > 5:
break
print(i)
위 코드는 i
가 5보다 커지면 루프를 종료하고, 그 전까지는 i
를 출력합니다.
3. 짝수만 출력하기 (continue
문 사용)
continue
문은 현재 반복을 건너뛰고 다음 반복으로 넘어가게 합니다. 이를 활용하면 짝수만 출력하는 코드를 만들 수 있습니다.
num = 0
while num < 10:
num += 1
if num % 2 != 0:
continue
print(num)
위 코드는 홀수는 건너뛰고 짝수만 출력하게 됩니다.
4. 사용자로부터 숫자를 입력받아 합계 구하기
사용자가 입력한 숫자까지의 합계를 구하는 프로그램도 while문으로 쉽게 구현할 수 있습니다.
sum = 0
i = 1
number = int(input("숫자를 입력하세요: "))
while i <= number:
sum += i
i += 1
print(f"1부터 {number}까지의 합은 {sum}입니다.")
사용자가 입력한 숫자까지의 합계를 계산하여 출력합니다.
5. 무한 루프를 활용한 퀴즈 프로그램
무한 루프를 활용하여 사용자가 정답을 맞출 때까지 계속해서 질문을 던지는 퀴즈 프로그램을 만들 수도 있습니다.
while True:
answer = input("선생님이 좋아하는 과일은 무엇일까요? ")
if answer == "딸기":
print("정답입니다!")
break
else:
print("틀렸습니다. 다시 시도하세요.")
정답인 '딸기'를 맞출 때까지 퀴즈가 계속됩니다.
while문의 제어문: break
, continue
, 그리고 else
파이썬의 while문은 제어문인 break
, continue
, 그리고 else
와 함께 사용할 수 있어 유연하게 반복을 제어할 수 있습니다.
break
: 루프 강제 종료
break
문은 현재 실행 중인 루프를 즉시 종료합니다. 위에서 본 예제처럼 무한 루프에서 특정 조건에 도달했을 때 루프를 종료하는 데 유용합니다.
continue
: 현재 반복 건너뛰기
continue
문은 현재 실행 중인 반복의 나머지 부분을 건너뛰고 다음 반복으로 넘어갑니다. 이를 통해 특정 조건에서만 코드를 실행하거나, 특정 조건에서는 실행하지 않도록 할 수 있습니다.
else
: 정상적으로 종료된 후 실행
파이썬의 while문은 else 절을 가질 수 있습니다. 이는 while문이 정상적으로 종료되었을 때 실행됩니다. 단, break
문으로 인해 루프가 종료되면 else 절은 실행되지 않습니다.
i = 0
while i < 5:
print(i)
i += 1
else:
print("루프가 정상적으로 종료되었습니다.")
위 코드는 루프가 정상적으로 종료된 후 "루프가 정상적으로 종료되었습니다."라는 메시지를 출력합니다.
파이썬에서 do-while문 구현하기
파이썬에는 C나 Java와 같은 언어에서 제공하는 do-while문이 존재하지 않습니다. 하지만 파이썬에서도 비슷한 동작을 구현할 수 있습니다. 일반적으로 do-while문은 최소 한 번은 코드 블록을 실행하고 나서 조건을 검사합니다. 이를 파이썬에서는 다음과 같이 구현할 수 있습니다:
count = 0
while True:
print(count)
count += 1
if count > 5:
break
위 코드는 최소 한 번은 블록 내의 코드를 실행하고, 이후에 조건을 검사하여 루프를 종료합니다.
결론
파이썬의 while문은 매우 유용한 반복 제어 구조로, 다양한 상황에서 활용할 수 있습니다. 특히 조건에 따라 반복 횟수가 달라질 때 유용하며, 무한 루프와 같은 고급 기능도 쉽게 구현할 수 있습니다. 또한, break, continue, 그리고 else와 같은 제어문과 함께 사용하면 더욱 유연하게 반복 작업을 처리할 수 있습니다.
파이썬 프로그래밍에서 while문은 필수적으로 이해해야 할 중요한 개념 중 하나입니다. 다양한 예제를 통해 while문의 동작 방식을 익히고, 실전에서 활용해 보세요.
자주 묻는 질문 (FAQ)
Q1: while문과 for문의 차이점은 무엇인가요?
A1: for문은 주로 시퀀스(리스트, 튜플 등)의 요소를 순회할 때 사용되며, 반복 횟수가 고정되어 있을 때 적합합니다. 반면에 while문은 조건에 따라 반복 횟수가 달라질 수 있으며, 주로 조건 기반의 반복 작업에 적합합니다.
Q2: 무한 루프에 빠졌을 때 어떻게 해야 하나요?
A2: 무한 루프에 빠졌다면 키보드에서 Ctrl + C
를 눌러 강제로 프로그램을 중단시킬 수 있습니다.
Q3: 파이썬에 do-while문이 없나요?
A3: 네, 파이썬에는 do-while 구조가 없습니다. 하지만 while True와 break 문을 사용하여 비슷한 동작을 구현할 수 있습니다.
Q4: continue와 break의 차이는 무엇인가요?
A4: continue는 현재 반복만 건너뛰고 다음 반복으로 넘어가며, break는 전체 루프를 즉시 종료합니다.
Q5: else 구문은 언제 사용하나요?
A5: else 구문은 while 루프가 정상적으로 종료되었을 때 실행됩니다. 만약 break로 인해 루프가 종료되면 else 구문은 실행되지 않습니다.