파이썬으로 랩 타이머 만드는 방법
파이썬에서 랩 타이머(lap timer)를 구현해야 할 때는 'time' 모듈이 사용됩니다. 총 랩 수는 미리 정의되어 있으며, try~except 블록을 통해 랩 타이머를 시작하고 종료합니다.
아래 예제를 통해 실제 동작 방식을 살펴보겠습니다.
예제 코드
import time
start_time=time.time()
end_time=start_time
lap_num=1
print("Click on ENTER to count laps.\nPress CTRL+C to stop")
try:
while True:
input()
time_laps=round((time.time() - end_time), 2)
tot_time=round((time.time() - start_time), 2)
print("Lap No. "+str(lap_num))
print("Total Time: "+str(tot_time))
print("Lap Time: "+str(time_laps))
print("*"*20)
end_time=time.time()
lap_num+=1
except KeyboardInterrupt:
print("Exit!")실행 결과
Click on ENTER to count laps. Press CTRL+C to stop Lap No. 1 Total Time: 1.77 Lap Time: 1.77 ******************** Lap No. 2 Total Time: 3.52 Lap Time: 1.75 ******************** Exit!
코드 설명
필요한 패키지인
time모듈을 임포트합니다.시작 시간(
start_time), 종료 시간(end_time) 그리고 랩 번호(lap_num)를 초기화합니다.사용자가 Enter 키를 누를 때마다 한 바퀴(랩)가 기록되며 타이머가 시작됩니다.
try~except블록 안에서는 현재 시각과 직전 랩 종료 시각(end_time)의 차이를 계산하여 랩 시간을 구합니다.마찬가지로 현재 시각과 시작 시각(
start_time)의 차이를 계산하여 총 경과 시간을 구합니다.이렇게 얻은 값으로 랩 번호, 총 시간, 랩 시간을 확인할 수 있습니다.
계산된 결과는 콘솔 화면에 출력됩니다.
사용자가 CTRL+C를 누르면
KeyboardInterrupt예외가 발생하고, except 블록에서 'Exit!' 메시지를 출력한 뒤 프로그램이 종료됩니다.
참고: 더 정밀한 측정이 필요하다면?
time.time()은 운영체제의 벽시계(wall-clock) 시간을 기준으로 하므로 시스템 시간 변경에 영향을 받을 수 있습니다. 짧은 시간 간격을 고정밀도로 측정해야 하는 성능 분석 코드라면 time.perf_counter() 함수를 사용하는 것이 더 정확하고 권장됩니다.