Python

【Python】汎用性の高いカウントダウンタイマーを作ってみた【簡単】

Pythonで処理の中にスリープを入れたけど何秒経ったのか可視化したい

 

この記事ではこんな悩みについて書いていきます。

 

本記事の内容

  • Pythonでカウントダウンの処理のコード
  • カウントダウンのコードの内容について
  • カウントダウンのコード実行例

 

 

カウントダウンタイマーをPythonで書いたコード【コピペでOK】

from time import sleep

def count_down(max_time, interval_sec=1):
    """
    count(最大時間, 時間の間隔)
    例:
    count(10)なら1秒間隔で通知を10秒まで行う
    count(10, 2)なら2秒間隔で通知をを10秒まで行う
    """

    #最大時間
    max_sec = max_time // interval_sec

    #割り切れない時間
    remainder_sec = max_time % interval_sec

    #間隔
    sec = interval_sec

    for i in range(max_sec):
        print("{0}秒sleepを{1}間隔でお知らせ: 残り{2}秒".format(max_time, sec, max_time - (i * sec)))
        sleep(interval_sec)


    if remainder_sec == 0:
        print(f"{max_time}秒経ちました")

    else:
        print("{0}秒sleepを{1}間隔でお知らせ: 残り{2}秒".format(max_time, sec, max_time - (max_sec * sec)))
        sleep(remainder_sec)
        print(f"{max_time}秒経ちました")

 

カウントダウンタイマーのコードの内容について

引数のmax_time数えたい時間interval_sec通知する時間の間隔を設定します!
例えば、100秒のsleepで10秒ごとに通知したいならcountdown(100, 10)になり、10秒、10秒...、を100秒経つまでお知らせしてくれます!

interval_secはデフォルトで1秒と設定されていますの指定しなければ1秒ごとに通知されます。

 

countdown(10, 3)のようなinterval_secにmax_timeが割り切れない数字を入れた場合は、3秒、3秒、3秒の処理の後に余った1秒をsleepさせる処理になります。
ハルマチ

 

※注意※少数(float)は未対応

この関数の引数はint(整数)限定です。

 command
Traceback (most recent call last):
File "c:\Users\~\countdown.py", line 33, in
count_down(1.1, 1)
File "c:\Users\~\countdown.py", line 19, in count_down
for i in range(max_sec):
TypeError: 'float' object cannot be interpreted as an integer

 

こんな感じで引数に少数を設定するとエラーが起きてしまうので設定しないようにしましょう!

 

 

カウントダウンのコード実行例

 

あ~スプレッドシートは一度の100回のリクエストごとに100秒待たないといけないのか~
...あれ?あと何秒待てばいいんだっけ?
こんな時にcountdown関数は役立ちます!
ハルマチ

 

こんな感じでfor文の中に11の倍数のループででcountdown関数実行させようとすると

pythonのカウントダウンコードの実行例

 

カウントダウンコードの実行例

しっかりと10秒ごとにお知らせしてくれていますね!

 

 

まとめ:Pythonでカウントダウンタイマーは簡単にできた

Pythonのカウントダウンのコードはネットにあるんですが、欲しい機能がなかったので自分で作ってみました!

 

すべてのコードを理解しようとするのではなく「なんかよくわかんないけどこれ入れたらこんな動作するな~」くらいの気持ちで取り組んだらコード記述するのが結構楽に思えたのでやっぱ力抜くのって大事だなぁといじくっているとき強く認識しました。

 

 

スポンサーリンク

  • この記事を書いた人

Harumachi

現在絶賛引きこもりニートのハルマチです。 家から一歩出ずに暮らしていきたいと思っている。 引きこもりながら稼ぐ方法や生活の質を高める情報を投稿予定。 よろしくお願いします!

-Python
-

Copyright © ハルマチのブログ All Rights Reserved.