Python에서 카운트 다운 타이머 만들기

Python에서 카운트 다운 타이머 만들기

이 자습서에서는 Python에서 카운트 다운 타이머를 만드는 방법을 소개합니다.

이 코드는 카운트 다운 시간을 입력하고 입력이 입력 된 직후 카운트 다운을 시작합니다.

time모듈 및sleep()함수를 사용하여 Python에서 카운트 다운 타이머 만들기

time 모듈은 시간 관련 유틸리티 함수 및 변수를 포함하는 일반적인 Python 모듈입니다. 이 튜토리얼에서 사용되는 주요 함수는sleep()함수로,n초 동안 단일 스레드의 실행을 일시 중단하는 비동기 함수입니다.

프로그램이 단일 스레드 (이 자습서의 경우) 인 경우sleep()함수는 주어진 경과 시간에 도달 할 때까지 전체 프로그램 실행을 중지합니다. 이를 통해 검증 된 사용자 입력과 함께 Python에서 간단한 카운트 다운 타이머를 만들 수 있습니다.

가장 먼저 할 일은sleep()함수를 사용하기 위해time모듈을 가져 오는 것입니다.

import time

그런 다음 카운트 다운 타이머 역할을하는 함수를 선언합니다. 이 함수를countdown()이라고합시다. 이 함수는 타이머가 카운트 다운 할 초 수 (num_of_secs)라는 단일 매개 변수를받습니다.

num_of_secs변수는0에 도달 할 때까지 루프에서 계속 감소합니다 (이는False로 변환되고 추가 조건없이 루프를 종료 함).

루프 내에서 입력 변수num_of_secsMM:SS형식으로 포맷하고 감소 할 때마다 출력합니다. 이렇게하려면 내장 된 Python 함수 divmod()를 사용합니다.이 함수는 두 개의 숫자를 받아 각각 제품과 나머지 두 숫자를 반환합니다. 그런 다음 내장 문자열 함수format()을 사용하여divmod()의 튜플 결과를MM:SS형식으로 포맷합니다.

def countdown(num_of_secs):
    while num_of_secs:
        m, s = divmod(num_of_secs, 60)
        min_sec_format = "{:02d}:{:02d}".format(m, s)

{:02d}는 인수를 2 자리 정수로 형식화합니다 ( ‘02d’기호로 인해). 정수가 2 자리 미만이면 앞에 ‘0’이 추가됩니다.

다음으로 루프가 반복 될 때마다time.sleep(1)을 호출합니다. 이는 각 반복이 1 초 동안 지연되고 경과 후 계속됨을 의미합니다.

sleep()함수를 호출하기 전에 입력 변수num_of_secs의 현재 값의MM:SS형식과 유사한 형식화 된 문자열을 인쇄하십시오.

또한print()함수 내에end속성과/r값이있는 다른 인수를 추가합니다. 이는 실제 타이머의 동작을 모방하는 새 줄입니다. 이 인수는 루프가 실행될 때마다 이전print()출력을 덮어 쓰고, 캐리지 리턴이/r기호로 표시되기 전에 모든 것을 덮어 씁니다.

def countdown(num_of_secs):
    while num_of_secs:
        m, s = divmod(num_of_secs, 60)
        min_sec_format = "{:02d}:{:02d}".format(m, s)
        print(min_sec_format, end="/r")
        time.sleep(1)
        num_of_secs -= 1

    print("Countdown finished.")

그 후, 모든 이전 행이 실행 된 후 입력 변수min_sec_format을 1만큼 감소시킵니다.

마지막으로, 타이머 실행이 완료되었음을 나타내는 루프 외부에 결론을 출력합니다. countdown()메서드를 마치고 카운트 다운 타이머로 작동합니다.

다음으로 할 일은 사용자가 카운트 다운을 트리거 할 시간 (초)을 입력 할 수있는 방법을 제공하는 것입니다. 이를 위해 내장input()함수를 사용하여 사용자 입력을받을 수 있습니다.

입력 값을 변수로 잡아서 카운트 다운 함수에 대한 인수로 사용합니다. 유효성 검사를 위해 입력 변수를int로 캐스팅해야합니다.

inp = input("Input number of seconds to countdown: ")
countdown(int(inp))

전체 코드는 다음과 같아야합니다.

import time


def countdown(num_of_secs):
    while num_of_secs:
        m, s = divmod(num_of_secs, 60)
        min_sec_format = "{:02d}:{:02d}".format(m, s)
        print(min_sec_format, end="/r")
        time.sleep(1)
        num_of_secs -= 1

    print("Countdown finished.")


inp = input("Input number of seconds to countdown: ")
countdown(inp)

출력:

Countdown finished.

최종 출력은Countdown Finished를 표시하지만 타이머 작동 방식을 모방하고00:00에 도달 할 때까지 각print()행을 지 웁니다.

따라서5초를 입력하면 스택 추적은 다음과 같습니다.

00:05
00:04
00:03
00:02
00:01
Countdown finished.

거기에 있습니다. 이제 내장 함수와time모듈의sleep()함수를 사용하여 Python에서 간단한 카운트 다운 타이머를 성공적으로 만들었습니다.

튜토리얼이 마음에 드시나요? DelftStack을 구독하세요 YouTube에서 저희가 더 많은 고품질 비디오 가이드를 제작할 수 있도록 지원해주세요. 구독하다
Rayven Esplanada avatar Rayven Esplanada avatar

Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.

LinkedIn

관련 문장 - Python Timer