1. はじめに
Pythonで手軽にカウントダウンタイマーを作成してみたいと思ったことはありませんか?
本記事では、「Python|カウントダウンタイマーを作成する」というテーマで、初心者の方にもわかりやすく、Pythonで動作する簡単なタイマーの作り方を解説します。
タイマーは、指定した時間からのカウントダウンや、作業時間の計測、アラート機能など、実用性の高いツールです。
特にPythonでは、time
モジュールやdatetime
モジュールを使って、短いコードでタイマー機能を実装できます。
この記事では、基本的な仕組みから、実際に使える応用例、よくあるミスやエラーまでを丁寧に解説していきます。
2. Pythonでカウントダウンタイマーを作成する基本
2-1. カウントダウンタイマーの基本概念
カウントダウンタイマーとは、ある時間をスタートとして、1秒ごとに数字を減らしていく仕組みです。
Pythonでは、time.sleep()
を使って1秒待機しながら、ループで時間を減らしていく方法が一般的です。
2-2. 基本的なカウントダウンタイマーのコード
以下に、シンプルなカウントダウンタイマーのコードを紹介します。
import time
# カウントダウンする秒数
seconds = 10
while seconds > 0:
print(f"残り {seconds} 秒")
time.sleep(1) # 1秒待つ
seconds -= 1
print("時間になりました!")
実行結果:
残り 10 秒
残り 9 秒
残り 8 秒
...
残り 1 秒
時間になりました!
このように、time.sleep(1)
で1秒ごとに処理を遅らせつつ、カウントを減らしていくことでタイマーの動きを実現しています。
3. よくある使い方・応用例
3-1. 分単位でタイマーを動かす
作業時間の管理やポモドーロ・テクニックに使える「分単位」のカウントダウンも簡単に実装できます。
import time
# 2分間のタイマー(120秒)
total_seconds = 2 * 60
while total_seconds > 0:
minutes = total_seconds // 60
seconds = total_seconds % 60
print(f"{minutes:02d}:{seconds:02d}")
time.sleep(1)
total_seconds -= 1
print("タイマー終了!")
実行結果:
02:00
01:59
01:58
...
00:01
タイマー終了!
3-2. ターミナルでリアルタイム表示(上書き)
標準出力で毎回改行せず、カウントダウン表示を1行で更新したい場合には\r
を使います。
import time
import sys
count = 10
while count > 0:
sys.stdout.write(f"\rカウントダウン: {count}秒 ")
sys.stdout.flush()
time.sleep(1)
count -= 1
print("\n完了!")
実行結果:
カウントダウン: 10秒(1行で上書きされていきます)
...
完了!
3-3. 時間を入力してタイマーを動かす
ユーザーに時間(分数)を入力させて、任意の長さのカウントダウンを開始する方法も便利です。
import time
minutes = int(input("何分タイマーを設定しますか?:"))
total_seconds = minutes * 60
while total_seconds:
mins = total_seconds // 60
secs = total_seconds % 60
print(f"{mins:02d}:{secs:02d}", end='\r')
time.sleep(1)
total_seconds -= 1
print("時間です!")
実行結果:
何分タイマーを設定しますか?:1
01:00(リアルタイムに更新)
...
00:00
時間です!
4. 注意点・エラー対策
4-1. time.sleep()の単位に注意
time.sleep()
の引数は「秒」です。1分待つ場合は60
を渡しましょう。小数(0.5秒など)も使えます。
4-2. 改行の抑制・上書き表示における注意
ターミナルで表示を「上書き」したいときはend='\r'
または\r
に注意。環境によってはうまく表示されないことがあります。
4-3. ユーザー入力での例外処理
input()
で数値以外が入力されるとValueError
が発生します。以下のように例外処理を加えると安全です。
try:
minutes = int(input("タイマー時間(分)を入力してください:"))
except ValueError:
print("数字を入力してください。")
5. まとめ
今回は「Pythonでカウントダウンタイマーを作成する方法」について、基本から応用まで解説しました。
time.sleep()
で1秒ごとに処理を遅らせる- 分単位のタイマーや入力対応も簡単に作れる
- 表示の工夫で見やすくできる
このスキルは、作業の時間管理ツールや、学習アプリの補助機能としても活用できます。Pythonの基本的な構文で作れるので、ぜひ自分なりにカスタマイズしてみてください!
次のステップとしては、音を鳴らす通知機能やGUI(tkinter
など)との組み合わせもおすすめです。