見出し画像

Pythonでストップウォッチ

参考サイトを見ながら時間の取得、ストップウオッチをテキストベースで作っていきます。

テキストベースということでColabで実行していきます。

まずは時間の取得から。一番簡単なのは

import time

nowTime = time.time()
print(nowTime)

1644148424.3030994

と何だかわからない数字がでてきます。

UNIX時間(エポック秒)はUTC(協定世界時)の1970年1月1日0時0分0秒からの経過秒数。

これでも時間の経過を計算するときには使えますが、普通の状態、日時で取得したいです。そうするには、

import datetime

dateTimeNow = datetime.datetime.now()

print(dateTimeNow)

とすれば今の日付時間が出てきます。

2022-02-06 11:58:21.579793


日本の時間を確実に取得するには以下を実行。

import datetime
import pytz


now = datetime.datetime.now(pytz.timezone('Asia/Tokyo'))

print(now)

2022-02-06 20:59:24.493879+09:00

とでました。こちらが正確な今の時間です。環境によって"datetime"だけでは取得はできない場合があるのです。

時間の取得が少しわかったところで

ストップウオッチ

ストップウオッチはスタートしてストップするまでの時間がわかることが最低条件です。これを実現する方法として

  1. スタートした時間をまず記録する。

  2. ストップした時の時間を記録する

  3. ストップした時間からスタートした時間をひく

この時間の差分が欲しい時間ということになります。

これをコードにしていきます。まず時間はtime()を使うので最初にimportします。

import time

最初にスタートボタンを押したらその時間を記録したいのですが、スタートする仕掛けを作らないと行けないので、今回はコマンドラインで作っているのでスタートのタイミングをinput()を使うことでreturnすることで開始することができます。

import time

print("returnでスタート")

start = input()
print("start")

これで"return"することでプログラムがスタートとし、順次動くようになります。この場合はコンソールには"start"と表示されます。

開始されたと同時に変数startTimeに取得した時間を記録します。

startTime = time.time()

試しに2秒後にストップしてみます。time.sleep(2)を使います。このコマンドで()の中、今は"2"となって入りので2秒、"待ち"2秒待つことになります。

まったあとに変数stopTimeに止まった時間を記録します’

stopTime = time.time()

最後に時間の差分を出力されます。

print(stopTime - startTime)

全コードは以下

startTime = time.time()

time.sleep(2)

stopTime = time.time()

print(stopTime - startTime)

2秒sleepさせた時間差はというと。

2.001577854156494

とでました。

time.sleep(2)を使って時間をずらしているので"2"秒ぐらいの時間差が出ると良いので、2.00という数字が出力できたので正確に測れているようです。

これでスタート、ストップの経過時間をはかる仕組みができました。

この記事が気に入ったらサポートをしてみませんか?