Python|カウントダウンタイマーを作成する

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など)との組み合わせもおすすめです。

タイトルとURLをコピーしました