今回やること
指定した秒数をカウントするタイマーを作ります。
長い待ち時間は検証しづらいため、最初は3秒タイマーで作ります。
タイマーは、指定した回数だけ残り時間を表示し、time.sleep(1)で約1秒ずつ待って終了を知らせます。標準ライブラリの読み込みはimportの基本で確認できます。
完成コード
simple_timer.py を作ります。
import time
def start_timer(seconds):
for remaining in range(seconds, 0, -1):
print(f"残り{remaining}秒")
time.sleep(1)
print("時間です")
start_timer(3)
動作確認
python simple_timer.py
約3秒かけて次の順に表示されれば成功です。
残り3秒
残り2秒
残り1秒
時間です
実行commandは環境によりpython3 simple_timer.pyまたはpy simple_timer.pyを使います。
コードの考え方
time.sleep(1)は1秒待つ処理ですrange(seconds, 0, -1)は秒数を減らすために使います- 関数にしておくと、秒数を変えて再利用できます
よくあるエラー
| エラー | 原因 | 修正 |
|---|---|---|
NameError | import time がない | 先頭に書く |
| すぐ終わる | sleep がない | ループ内に入れる |
| 0が表示されない | rangeの終了値仕様 | 最後に別で完了表示する |
secondsが0以下ならカウントダウンせず、すぐ時間ですと表示されます。入力で秒数を受け取る場合はprintとinputを使い、整数以外と負数を先に検証します。何度も計るメニューを作るならwhile文へ進みます。
練習
- 5秒タイマーに変える
- 表示文を変える
- 終了時に「休憩しましょう」と表示する
次のステップ
経過時間を測る場合は Pythonミニ制作:ストップウォッチ に進んでください。