【Python入門】sleep関数の3つの便利な使い方

プログラムを書く時に

  • APIの制限があるからこの処理は1秒待ってから行わせたい
  • 段階的に結果を出したいので処理ごとに一時的に止めたい


のように考えたことがあるのではないでしょうか。

今回はこのような処理をPythonのtimeモジュールsleep関数を使って実装する方法を紹介していきます。
また、ミリ秒単位で使う方法や、繰り返しの中で使う方法も解説していきます。

sleepの使い方

まずはsleepをプログラムの中で使えるようにimportしましょう。今回はsleepのみを使うので、timeモジュールからsleep関数のみをimportします。

これでtimeモジュールの中からsleep関数のみをimportする事ができました。この方法でimportすると、sleep以外のtime内の関数にアクセスできなくなるので注意してください。

実際に確認してみましょう。

Jupyter lab上で試してみます。

In:

Out:

このように、from [module] import hoge を使うと、importしたhogeのみ使えるようになり、それ以外のものにはアクセスできません。このような方法でimportすると

  • 明示的に何を読み込んだのか分かる様になる
  • 毎回time.sleepのようにモジュール名から書く必要がなくなる


点において便利です。では実際にsleep関数の使い方を確認していきましょう。

sleep(secs)は引数として秒数を受け取ります。引数secsはint型でもfloat型でも構いません。

これでbeginからendの間に1秒間の間を開ける事ができました。ただし注意点としては、当然ですがマイナスの秒数を受け取ることはできません。

必ずプラスの数を引数に与えることにだけ注意してください。

sleepをミリ秒で使う

次に、sleep関数を使ってミリ秒(1/1000秒)単位で処理を止めてみましょう。

0.001秒ストップのテスト

これでbeginからendの間に0.001秒間の間を開ける事ができました。このように、sleep関数の使い方はとても簡単です。

sleepを繰り返しの中で使う

では、応用としてループ処理の中でsleep関数を使う方法を紹介します。ここでは、forループの中で別の関数を呼び出し、ループごとに0.5秒sleepさせる処理を考えます。

簡単のため、呼び出す関数は「ループ回数をprintするだけの関数」とします。

実際に使うときは、「単位時間ごとにリクエスト制限があるapiを叩く関数」や「段階的にwebページの要素を表示していく関数」などが対象になるかと思います。

では実際に見てみましょう。

loopでsleepを使う

1~2行目で呼び出される関数を定義しています。stubという名前の関数で、引数iを受け取ります。

print関数は引数として与えられたものをコンソールに出力しますが、文字列型のメソッドの.format()を使っていることに注意してください。

これはこのメソッドを呼び出した文字列内の{}という表記に、.fortmat()の引数として渡されたobjectを代入する操作を行います。4~5行目はループ回数とsleepする秒数を定義しています。

6行目からはループ処理に入ります。このループの中でsleep関数を呼び出してからstub関数を呼び出しています。

これがループ処理内でsleep関数を使う例になります。

まとめ

今回はtime.sleepの使い方を紹介しました。

sleep関数はプログラム中で何秒か処理をストップさせたいときなどに便利ですね。簡単ですぐ使いこなせる機能なので、ぜひ活用してください。

経験豊富なエンジニアに相談したいあなたへ

「IT業界の実情についてエンジニアの生の声を聞きたい、既にIT業務の仕事をしていて解決したい課題があるから相談にのってもらいたい」そんな要望はございませんか?

周りにエンジニアをやっている人がいないと、実際の現場のことがイメージできず不安ですよね。

侍エンジニア塾の無料体験レッスンでは、ご質問内容によって「現役エンジニア」があなたの開発したいサービスへ技術的なアドバイスや、未経験から内定を獲得する転職活動の極意をお伝えいたします。

下記の無料体験レッスン予約カレンダーよりお申し込みいただけます。あなたのご相談を心よりお待ちしております。

LINEで送る
Pocket

書いた人

フクロウ

フクロウ

第一言語はPythonです。
皆さんRustやりましょう。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説