タイマーを作ろう!!
以前作ったタイマーのプログラムは以下のようなコードでした。
>>> import datetime
>>> now = datetime.datetime.now()
>>> goal = now + datetime.timedelta(seconds = 10)
>>> target = datetime.datetime.now()
>>> while target != goal:
... if target.hour == goal.hour and target.minute == goal.minute and target.second == goal.second:
... print("Time is up!!")
... break
... print(goal - target)
... target = datetime.datetime.now()
これを実行すると10秒タイマーとして機能しますが、逆に言えば10秒タイマーとしての機能しか持ちません。
もう少し自由度の高いタイマーが欲しくなったので、入力内容を読み取るinput()を用いて書き換えてみました。
セットしたい時・分・秒の入力を求めたいので、1行目の後に次のコードを追加しました。
print("セットしたい時間を入力してね")
h = int(input("時:"))
m = int(input("分:"))
s = int(input("秒:"))
これで変数h・m・sにそれぞれ時・分・秒の情報が格納されました。あとは目標時間(goal)をこれらの変数を含んだものにすればいいわけです。
>>> goal = now + datetime.timedelta(hours = h, minutes = m, seconds = s)
これらの変更を加えて前回同様関数化すると、以下のようなプログラムが完成します。
>>> def timer():
... import datetime
... print("セットしたい時間を入力してね")
... h = int(input("時:"))
... m = int(input("分:"))
... s = int(input("秒:"))
... now = datetime.datetime.now()
... goal = now + datetime.timedelta(hours = h, minutes = m, seconds = s)
... target = datetime.datetime.now()
... while target != goal:
... if target.hour == goal.hour and target.minute == goal.minute and target.second == goal.second:
... print("Time is up!!")
... break
... print(goal - target)
... target = datetime.datetime.now()
これでtimer()を呼び出すと…
>>> timer()
セットしたい時間を入力してね
時:0
分:0
秒:10
このように順に入力を求められ(ここでは0,0,10と入力)、enterキーを押すとタイマーが開始されます。
.
この記事が気に入ったらサポートをしてみませんか?