Python3 루프가 멈춘 것처럼 보이는 이유
결론부터 말씀드리면, 코드는 실제로 정상적으로 작동하고 있습니다. 다만 실행 중 화면에 아무런 변화가 없어서 멈춘 것처럼 보일 뿐입니다.
원인: 루프 안의 sleep() 메서드
루프 내부에서 sleep() 메서드를 사용하셨기 때문에, 각 반복마다 0.9초씩 대기하게 됩니다. 총 36번 반복된다면 0.9 × 36 = 약 32.4초 동안 프로그램은 아무런 활동 없이 대기 상태에 머무릅니다.
이 대기 시간 동안에는 다음과 같은 현상이 나타납니다.
- 화면에 새로운 출력이 표시되지 않습니다.
- 프로그램이 사용자의 입력을 요청하지 않습니다.
- 마치 프로그램이 응답하지 않는 것처럼 느껴질 수 있습니다.
루프 종료 후 나타나는 결과
모든 반복이 끝나고 루프가 종료되면, 그제야 창에 지정한 문자열이 포함된 텍스트 필드가 표시됩니다. 즉, 결과가 즉시 보이지 않는 것이 아니라 sleep()으로 인한 지연 시간이 모두 경과한 후에야 결과가 나타나는 구조입니다.
확인 방법 및 개선 팁
정상 작동 여부를 빠르게 확인하려면 다음과 같은 방법을 사용해 보세요.
sleep(0.9)값을 잠시sleep(0.1)등으로 줄여서 전체 대기 시간을 단축합니다.- 루프 안에
print(i)같은 출력문을 추가해 진행 상황을 실시간으로 확인합니다. - GUI 환경이라면 창이 일시적으로 '응답 없음' 상태로 보일 수 있으므로, 필요하다면 스레드나 비동기 처리를 고려합니다.
요약하자면, 코드에 오류가 있는 것이 아니라 sleep()으로 인한 의도된 지연 때문에 결과 표시가 늦어지고 있는 것입니다. 충분히 기다리거나 대기 시간을 줄이면 원하는 결과를 확인할 수 있습니다.