今回やること
ストップウォッチの基本として、処理にかかった時間を測ります。
時間計測には、時刻ではなく経過時間を測るperf_counterが向いています。
ストップウォッチは、処理前後でtime.perf_counter()を呼び、終了値から開始値を引いて経過時間を求めます。待って通知するタイマーとは目的が異なります。importの基本も先に確認してください。
完成コード
stopwatch_basic.py を作ります。
import time
def measure_task():
start = time.perf_counter()
total = 0
for number in range(1, 100001):
total += number
end = time.perf_counter()
elapsed = end - start
print(f"合計: {total}")
print(f"経過時間: {elapsed:.4f}秒")
measure_task()
動作確認
python stopwatch_basic.py
合計: 5000050000と、0以上の小数で経過時間: ...秒が表示されれば成功です。PCの性能や実行中の負荷で秒数は変わるため、経過時間の完全一致は求めません。
コードの考え方
time.perf_counter()は時間計測向けの関数です- 処理前と処理後の差を取ると経過時間になります
- 今回は足し算処理を測定対象にしています
よくあるエラー
| エラー | 原因 | 修正 |
|---|---|---|
NameError | import time がない | 先頭に書く |
| 0秒に見える | 処理が短すぎる | 表示桁数や処理量を増やす |
| 時刻と混同 | 現在時刻を見ている | 経過時間は差で見る |
短い処理は0.0000秒に丸められることがあります。表示桁数を増やすか処理を複数回実行します。合計値が正しいかはPythonの数値計算と分けて確認してください。
練習
rangeの数を増やす- リスト作成の時間を測る
- 関数名を分かりやすく変える
次のステップ
ゲーム制作に戻る場合は Pythonミニ制作:簡単なクイズゲーム に進みます。