こんにちわ。Toruです。
みなさんプログラムを実行して、終わった時に処理時間が表示されるようにしたときありませんか?
なので今回はPythonを使って、誰でも簡単に処理にかかった時間を表示できるプログラムを簡単に紹介していきます。
それでは行きましょう。
今回紹介するプログラム
いきなりですが先に答えを出しちゃいます。
急いでる方や本文を読むのがめんどくさい方はコピペして自由に使ってください。
サンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | import time def main(): start_time = time.time() # ============ # なんかの処理 # ============ finish_time = time.time() h, m, s = hhmmss_time(finish_time - start_time) print("★ Processing Time => {0}h {1}m {2}s".format(int(h), int(m), int(s))) def hhmmss_time(sec): print(sec) h = sec/(60*60) s = sec % 60 m = 0 while sec >= 60: m += 1 sec = sec - 60 if m == 60: m = 0 if sec == 0: break return h, m, s if __name__ == "__main__": main() |
例Ⅰ)処理時間が3000秒のとき
1 | ★ Processing Time => 0h 50m 0s |
例Ⅱ)処理時間が86399秒のとき
1 | ★ Processing Time => 23h 59m 59s |
ここからは初心者でもわかるように説明します
それではここからは初心者の方でもわかるように丁寧説明していきます。
import time
いわずとしれたpythonの標準ライブラリ。
python -m pip install --user hogehoge のようにライブラリをインストールする必要がないので楽チン。ライブラリtimeについて詳しく知りたい方はこちらのサイトをご覧ください。
time.time()
処理を開始してからその瞬間の経過時間を取得します。
例えば、4行目の start_time = time.time() であればプログラムを開始した瞬間の経過時間(この瞬間は大体0が start_time に代入される)
いろんな処理をして、10行目の finish_time = time.time() には、4行目の start_time からの経過時間が代入される。
こうすることであるプロセスにかかった時間を計測しているわけです。
hhmmss_time(finish_time – start_time)
自分で作った関数(hhmmss_time)に finish_time - start_time を引数として代入しています。
その作った関数は16行目にあります。ここで経過時間(秒)を時分秒に変換しているわけなのです。
hhmmss_time()
これは私が作った関数です。pythonでは def hogehoge(): とやることで自由にオリジナルの関数を作ることができます(hogehogeは予約語以外なら何でもOK)。
なぜ関数を作る必要があるかというと、簡単にいえば「何回もおんなじ処理を記述するのはめんどくさいし長くなるので見栄えが悪い」からです。
()内に経過時間を引数として入れてやることで、その引数の値をもとにいろいろ計算し、その結果を30行目の return で返します。
h = sec/(60*60)
ここでは引数の数値から時間(h)に変換します。
変換の考え方は簡単。秒(60s)×分(60m)は1時間になるので、与えられた数値をそれで割ることで時間(h)が求まるわけです。
s = sec % 60
sは秒を表しています。そして%は割り算のあまりの部分を返します。
これも考え方は簡単。例えばsecが60のときは、あまりが0。100であれば40を返します。
このあまりの部分が秒(s)となるわけです。
while sec >= 60:
ここは分(m)を求めるところ。ここが少し厄介。
while 文は for 文と同じで指定された範囲内で繰り返し処理を行います。 while sec >= 60: は「sec は60以下になるまで処理を繰り返す」という意味。 m += 1 と sec = sec - 60 で分の値をmに入れていきます。例えばsec=120なら÷60でm=2、sec=180なら÷60でm=3となります。これらh, m ,sを returnで出力します。
おわりに
以上がPythonで処理時間をhh/mm/ss表記で表示するプログラムの紹介でした。簡単ですね。
僕からもこれ以上特にいうことはないので、終わりですが、何か質問がある方はコメントください。
それでは、ばい。
こちらの記事もおすすめ
【初心者でも解る】VSCodeでライブラリ簡単インストール〜後編〜