본문 바로가기

Python

2-3. while 반복문

파이썬 while 반복문 타이틀 이미지

안녕하세요! 지난 시간에는 if, elif, else 조건문과 비교/논리 연산자를 활용하여 프로그램이 다양한 상황을 판단하고 다른 동작을 수행하도록 만드는 방법을 배웠습니다. 이제 프로그램이 "결정"을 내릴 수 있게 되었죠!

이번 시간에는 프로그램의 흐름을 제어하는 또 다른 중요한 도구인 **반복문(Loop Statement)**에 대해 알아보겠습니다. 그중에서도 while 반복문특정 조건이 참(True)인 동안 코드를 계속해서 반복 실행할 때 사용됩니다.

마치 "만약 이 조건이 맞으면 계속해라, 아닐 때까지"라고 컴퓨터에게 지시하는 것과 같습니다. 그럼, while 반복문의 세계로 들어가 볼까요?


Part 1: while 반복문 기본 사용법

while 반복문은 조건이 True인 한, 그 아래에 들여쓰기 된 코드 블록을 계속해서 실행합니다.

1. 기본 형식

Python
 
while 조건:
    # 조건이 True인 동안 반복 실행할 코드
    # 이 부분은 들여쓰기(Indentation) 필수!
  • 조건: True 또는 False로 평가될 수 있는 표현식입니다. 이 조건이 True인 동안 반복문이 계속 실행됩니다.
  • : (콜론): while 문 뒤에는 반드시 콜론을 붙여야 합니다.
  • 들여쓰기(Indentation): while 문 아래에 실행될 코드는 반드시 들여쓰기를 해야 합니다.

가장 중요한 점: 반복문이 무한히 실행되는 것을 막기 위해, 반복문 내부에서 조건이 언젠가는 False가 되도록 만들어야 합니다. 그렇지 않으면 프로그램이 끝없이 반복되는 **무한 루프(Infinite Loop)**에 빠질 수 있습니다.

예시: 1부터 5까지 출력하기

Python
 
# 파일 이름: while_count.py

count = 1 # 초기 값 설정

while count <= 5: # count가 5보다 작거나 같은 동안 반복
    print(f"현재 숫자는 {count}입니다.")
    count = count + 1 # count 값을 1씩 증가 (이 부분이 중요! 조건이 False가 되도록 함)

print("반복이 종료되었습니다.")
  • count = 1: 반복을 시작할 초기 값을 설정합니다.
  • while count <= 5: count가 5보다 작거나 같은 동안 반복하라는 조건입니다.
  • count = count + 1 (또는 count += 1): count 값을 1씩 증가시킵니다. 이 문장이 없으면 count는 계속 1이므로 무한 루프에 빠지게 됩니다. count가 6이 되는 순간 count <= 5 조건은 False가 되어 반복문이 종료됩니다.

 
# 파일 이름: while_count.py

count = 1 # 초기 값 설정

while count <= 5: # count가 5보다 작거나 같은 동안 반복
    print(f"현재 숫자는 {count}입니다.")
    count = count + 1 # count 값을 1씩 증가 (이 부분이 중요! 조건이 False가 되도록 함)

print("반복이 종료되었습니다.")

[VS Code 터미널 출력]

파이썬 while 반복문 기본 사용 예시

 


Part 2: 무한 루프와 탈출 (무한 반복 주의!)

while 문의 조건이 항상 True로 유지될 경우, 프로그램은 끝없이 반복되는 **무한 루프(Infinite Loop)**에 빠지게 됩니다. 이는 대부분 의도치 않은 상황이며, 프로그램이 멈추지 않고 계속 실행될 것입니다.

1. 무한 루프의 예시

Python
 
# 파일 이름: infinite_loop.py

# 이 코드는 무한 루프에 빠집니다!
# 실행 시 주의하세요.
# count = 0
# while True: # 조건이 항상 True
#     print("저는 계속 반복됩니다...")
#     count += 1
#     if count > 5: # 이 조건이 없으면 영원히 반복
#         break # 임시로 5번 반복 후 탈출하도록 추가 (실제 무한 루프 예시를 위해 주석 처리)
  • 위 코드에서 while True:는 항상 참이기 때문에, break 문이 없으면 영원히 "저는 계속 반복됩니다..."를 출력하게 됩니다.

2. 무한 루프에서 강제 종료하는 방법

만약 실수로 무한 루프에 빠진 프로그램을 실행했다면, 터미널에서 Ctrl + C (컨트롤 + C) 키를 눌러 강제로 프로그램을 종료할 수 있습니다.


Part 3: while 문 활용 예제

while 반복문은 사용자 입력 유효성 검사, 특정 조건이 만족될 때까지 대기하는 등의 상황에서 매우 유용하게 사용됩니다.

1. 예제: 올바른 비밀번호 입력받기

사용자에게 비밀번호를 입력받는데, 올바른 비밀번호를 입력할 때까지 계속 다시 입력받는 프로그램입니다.

Python
 
# 파일 이름: while_password_check.py

correct_password = "python123"
entered_password = "" # 초기값은 비어있는 문자열

while entered_password != correct_password: # 입력된 비밀번호가 정답과 다른 동안 반복
    entered_password = input("비밀번호를 입력하세요: ")
    if entered_password == correct_password:
        print("로그인 성공!")
    else:
        print("비밀번호가 틀렸습니다. 다시 시도하세요.")

print("프로그램을 계속 진행합니다.")
  • entered_password != correct_password: 입력된 비밀번호가 correct_password와 다르면 True가 되어 반복합니다. 같아지면 False가 되어 반복문이 종료됩니다.

 
# 파일 이름: while_password_check.py

correct_password = "python123"
entered_password = "" # 초기값은 비어있는 문자열

while entered_password != correct_password: # 입력된 비밀번호가 정답과 다른 동안 반복
    entered_password = input("비밀번호를 입력하세요: ")
    if entered_password == correct_password:
        print("로그인 성공!")
    else:
        print("비밀번호가 틀렸습니다. 다시 시도하세요.")

print("프로그램을 계속 진행합니다.")

[VS Code 터미널 출력 (사용자 입력 포함)]

파이썬 while 반복문을 이용한 비밀번호 확인 프로그램

(괄호 [] 안의 내용은 사용자가 직접 입력하는 부분입니다.)

 


마무리하며

이번 시간에는 파이썬에서 특정 조건이 참인 동안 코드를 반복 실행하는 while 반복문에 대해 알아보았습니다. 초기 값, 조건, 그리고 조건 변경 로직의 세 가지 요소가 반복문의 동작을 결정하며, 특히 무한 루프에 빠지지 않도록 조건을 잘 관리하는 것이 중요합니다.

while 문은 사용자 입력을 기다리거나, 특정 상태가 될 때까지 작업을 반복하는 등 다양한 시나리오에서 유용하게 사용될 수 있습니다.

다음 포스팅에서는 while 문과 함께 파이썬의 양대산맥을 이루는 또 다른 중요한 반복문인 for 반복문에 대해 자세히 알아보겠습니다.


궁금한 점이 있다면 언제든지 질문해주세요! 다음 포스팅에서 만나요!

반응형