1. はじめに
Pythonで「カウントアップタイマーを作成する」方法について解説します。カウントアップタイマーとは、一定間隔で時間を加算していくタイマーのことで、経過時間を表示するプログラムに活用できます。
本記事では、Python初心者〜中級者を対象に、シンプルなカウントアップ処理から、実用的な応用までを具体的なコードとともに紹介します。プログラミング学習中の方や、GUIアプリやIoT開発のための土台を作りたい方にも役立つ内容です。
2. Pythonでカウントアップタイマーを作成する基本
2-1. カウントアップタイマーとは?
カウントアップタイマーは、「開始時刻」からの経過時間をリアルタイムで表示し続ける仕組みです。time
モジュールを使えば、Pythonで簡単に実装できます。
2-2. 基本的なカウントアップ処理
import time
# 10秒間カウントアップ
for i in range(11):
print(f"経過時間:{i} 秒")
time.sleep(1)
実行結果:
経過時間:0 秒
経過時間:1 秒
経過時間:2 秒
...
経過時間:10 秒
2-3. 時間の計測に便利なtime.time()
import time
start = time.time()
time.sleep(3) # 3秒待機
end = time.time()
print(f"正確な経過時間:{end - start:.2f} 秒")
実行結果:
正確な経過時間:3.00 秒
3. よくある使い方・応用例
3-1. リアルタイムで更新されるタイマー
import time
import sys
for i in range(11):
sys.stdout.write(f"\r経過時間:{i} 秒")
sys.stdout.flush()
time.sleep(1)
print("\nタイマー終了")
実行結果:
(1秒ごとに「経過時間:○ 秒」が上書き表示され、最後に「タイマー終了」と表示)
3-2. 分・秒形式(MM:SS)で表示するタイマー
import time
for sec in range(121): # 2分間
minutes = sec // 60
seconds = sec % 60
print(f"\r経過時間:{minutes:02}:{seconds:02}", end="")
time.sleep(1)
実行結果:
経過時間:00:00
経過時間:00:01
...
経過時間:02:00
3-3. キーボードで停止できるタイマー
import time
count = 0
try:
while True:
print(f"\r経過時間:{count} 秒", end="")
time.sleep(1)
count += 1
except KeyboardInterrupt:
print("\nタイマーを手動で停止しました。")
実行結果:
(1秒ごとに表示され、Ctrl+Cで停止)
タイマーを手動で停止しました。
4. 注意点・エラー対策
4-1. time.sleep()の精度に注意
time.sleep()
は便利ですが、厳密な精度は保証されていません。OSやCPUの影響を受けるため、リアルタイム性が求められる用途(ゲーム・IoT)ではtime.perf_counter()
や外部タイマーライブラリの利用も検討しましょう。
4-2. Ctrl+C割り込みに対応する
無限ループの中でタイマーを使う際は、KeyboardInterrupt
例外を捕捉しないと、停止時にエラーメッセージが表示されます。try〜except
ブロックを使うことで、ユーザーが意図的に停止してもきれいに終了できます。
4-3. 表示が重ならないようにする
print()
で出力し続けると画面がスクロールして見にくくなることがあります。\r
とend=""
を活用して同じ行に上書きする方法を取り入れましょう。
5. まとめ
この記事では、Pythonで「カウントアップタイマーを作成する」方法を解説しました。基礎的なループ処理から、リアルタイム表示、分秒変換、割り込み対応といった応用までを紹介しました。
学んだポイントのおさらい:
time.sleep()
で一定間隔の処理が可能sys.stdout.write()
や\r
でリアルタイム更新を実現try〜except
で安全な停止処理ができる
カウントアップタイマーは、簡単なツールから複雑なアプリ開発まで幅広く応用できます。学習ツール、トレーニングアプリ、実験計測などにも役立ちます。自分なりの機能追加にもぜひ挑戦してみてください!