개발 같이해요/PYTHON

[ python ] 파이썬으로 카운트다운 타이머 만들기 (time 모듈 과 while문 )

Rio - Moon 2024. 11. 10. 16:24
728x90
반응형

 

 

이번 포스팅에서는 파이썬 을 좀 더 잘 익히기 위해 간단한 프로젝트를 진행해보겠습니다.

카운트다운 타이머 인데요, 같이 만들어보면서 시간 지연을 다루는 방법과 반복문을 활용하는 법을 배워보도록 하겠습니다.

 

그 외에 파이썬의 연사자 와 함수 에 대해 궁금하시면 아래 포스팅을 같이 참고해주세요

 

 

 

 


 

 

# 1. 카운트다운 타이머 준비물

 

카운트다운 타이머를 구현하기 위해 파이썬에서 제공하는 time 모듈을 사용하게 됩니다. time 모듈은 시간과 관련된 여러 가지 기능을 제공하며, 여기서는 time.sleep() 함수를 활용하여 프로그램을 일정 시간 동안 대기시킬 것입니다.

또한, 카운트다운을 계속해서 1씩 줄여가는 동작을 구현하기 위해 while문을 사용합니다. while문은 조건이 참인 동안 반복적으로 실행되기 때문에, 우리가 원하는 초가 0이 될 때까지 계속해서 숫자를 줄이는 데 적합합니다.

 

 

 

 

# 2. 파이썬 카운트다운 타이머 구현

 

카운트다운 타이머를 구현하는 과정은 매우 간단합니다. 먼저 사용자가 원하는 시간을 입력받고, 그 시간이 0이 될 때까지 반복적으로 감소시키는 구조를 만들면 됩니다. 아래에서 단계별로 설명드리겠습니다.

 

 

import time

def countdown_timer(seconds):
    while seconds > 0:
        minutes, sec = divmod(seconds, 60)
        timer = f'{minutes:02}:{sec:02}'
        print(timer, end="\r")  # 현재 시간을 같은 줄에 출력
        time.sleep(1)  # 1초 대기
        seconds -= 1

    print("시간 종료!")

# 사용자로부터 카운트다운 시간(초)을 입력받습니다.
user_input = int(input("카운트다운 시간을 초 단위로 입력하세요: "))
countdown_timer(user_input)

 

코드는 간단하게 구현이 가능한데요. 설명을 드리도록 하겠습니다.

 

먼저 카운트다운 타이머의 시퀀스 입니다.

코드의 상세 설명입니다.

 

  1. 모듈 임포트: import time을 통해 time 모듈을 가져옵니다. 이 모듈을 통해 프로그램의 실행을 일정 시간 동안 멈출 수 있습니다.

  2. 함수 정의: countdown_timer(seconds) 함수를 정의합니다. 이 함수는 인자로 받은 seconds(초)를 0이 될 때까지 1씩 줄이며 타이머를 실행합니다.

  3. 시간 출력: divmod(seconds, 60)을 사용해 분과 초를 계산합니다. 이렇게 하면 사용자가 입력한 시간을 분과 초로 나누어 더욱 이해하기 쉬운 형태로 출력할 수 있습니다. f'{minutes:02}:{sec:02}'은 분과 초를 두 자리 수로 맞추어 출력하는 형식입니다.

  4. 타이머 출력: print(timer, end="\r")은 매번 같은 줄에 타이머 값을 출력하게 합니다. end="\r"은 커서를 줄의 맨 앞으로 이동시켜 매초마다 화면을 갱신하는 효과를 줍니다.

  5. 시간 지연: time.sleep(1)을 사용하여 프로그램을 1초 동안 멈춥니다. 이를 통해 카운트다운이 자연스럽게 1초씩 줄어들게 됩니다.

  6. 카운트다운 종료: seconds가 0이 되면 print("시간 종료!")를 출력하여 카운트다운이 끝났음을 알립니다.

 

 

 

 

 

# 3.카운트다운 타이머 실행 

 

카운트다운 타이머 프로그램을 실행하면 사용자가 초 단위로 카운트다운 시간을 입력할 수 있습니다.

예를 들어, 30을 입력하면 다음과 같이 화면에 카운트다운이 표시됩니다

 

카운트다운 시간을 초 단위로 입력하세요: 30
00:30
00:29
...
00:01
시간 종료!

 

위와 같이 카운트다운이 진행되며, 모든 시간이 지나면 "시간 종료!"라는 메시지가 출력됩니다.

 

 

 

# 4. 마무리

파이썬의 time 모듈while문을 활용하여 간단한 카운트다운 타이머를 구현해 보았습니다. 이 과정을 통해 반복문과 시간 지연을 다루는 방법을 익히는 것은 프로그래밍 입문 과정에서 매우 중요한 경험입니다. 이를 기반으로 더 다양한 응용 프로그램을

개발하는 연습을 해보세요

 

다음에는 파이썬으로 더 흥미로운 프로젝트에 도전하거나, 이 타이머에 알림음이나 사용자 인터페이스를 추가하는 등 기능을 확장해 보는 것을 추천드립니다. 이번 간단한 카운트다운 타이머에 추가 기능을 개발 해보세요!

예를 들어,

  • 타이머 알림음 추가: 시간이 끝났을 때 알림음을 추가할 수 있습니다. playsound와 같은 라이브러리를 사용하면 알림음을 쉽게 구현할 수 있습니다.

  • 사용자 입력 검증: 사용자가 숫자가 아닌 값을 입력하는 경우 오류 메시지를 출력하고 재입력하도록 할 수 있습니다.

  • 시간 단위 선택: 사용자가 초 뿐만 아니라 분이나 시간을 입력할 수 있게 확장할 수도 있습니다.

이러한 확장을 통해 더 완성도 높은 타이머 프로그램을 만들 수 있습니다.

 

 

 

 

 

반응형