基本的に自分用のメモとして作成。
前回目覚まし時計を作ったので今度はキッチンタイマを作成。
(前回→Python3で目覚ましを作る)
以下が作成したコード。
KitchenTimer.py
import pygame.mixer
import time
#ファイル内変数
MINUTE_TO_SEC = 60
#アラーム処理
def Alert():
print("時間です")
Sound()
#音再生処理
def Sound():
pygame.mixer.init() #初期化
pygame.mixer.music.load('alerm1.mp3') #読み込み
pygame.mixer.music.play(-1) #ループ再生(引数を1にすると1回のみ再生)
input()
pygame.mixer.music.stop() #終了
#値の範囲確認
def CheckRange(num):
if not 0 <= num <= 59:
print("値が異常値です")
exit()
#目覚まし設定時間取得
print("目覚ましをセットする時間を指定してください")
minute = int(input("分(minute):"))
sec = int(input("秒(sec):"))
#値の範囲確認
CheckRange(minute)
CheckRange(sec)
#待ち時間を秒に変換
wtime = (minute * MINUTE_TO_SEC) + sec
#タイマセット
print(str(minute)+"分"+str(sec)+"秒にタイマをセットしました")
time.sleep(wtime)
Alert()
time.sleepが秒しか指定できなかったので、分を秒に変換して無理やり時間カウントさせた。
本当はscheduleとか使ったりしたり、現在時刻からアラート時間を設定するとかした方がいいのかも。
実行したらこんな感じ (入力値 1回目:2 2回目:1 )
pygame 1.9.5
Hello from the pygame community. https://www.pygame.org/contribute.html
目覚ましをセットする時間を指定してください
分(minute):2
秒(sec):1
2分1秒にタイマをセットしました
この場合「タイマをセットしました」と出てから2分1秒経過すれば「時間です」と表示され、alerm1.mp3が再生される。
目覚まし時計と同じで何かキー入力すれば音を停止できるようにしてます。
キッチンタイマとして動くけどちょっと無理やりすぎるなぁという作りだし、 59分59秒までしか設定できないのでこれ以上も設定できるように改善したいところ。
この変更はまた今度、気が向いたらやろうかな。
今回コードを書く上で色々調べてて知ったんだけど、Pythonって標準ライブラリで定数ないんだね。タプルはあるのに・・・なぜ?とびっくりした。 どこかの記事に、定数として変数を扱いたいときは変数名を大文字にする、というマナーがあると見ました。 練習用のコードだと変数名とかそういうの雑にしがちだけど、しっかり気を付けないとだね。