[Python] sleep関数を使って処理を1秒待つ方法を解説

Pythonで処理を一時停止させたい場合、標準ライブラリのtimeモジュールに含まれるsleep関数を使用します。

この関数は、指定した秒数だけプログラムの実行を停止します。

例えば、time.sleep(1)と記述することで、処理を1秒間停止させることができます。

この機能は、APIの呼び出し間隔を調整したり、ユーザーインターフェースの更新を制御したりする際に便利です。

この記事でわかること
  • sleep関数の基本的な使い方
  • 秒、ミリ秒、マイクロ秒単位での待機方法
  • ループ内や複数のsleepを使った実例
  • ウェブスクレイピングやAPIリクエストでの応用
  • ゲーム開発におけるフレームレート制御の方法

目次から探す

sleep関数とは

sleep関数は、Pythonのtimeモジュールに含まれる関数で、指定した時間だけプログラムの実行を一時停止させるために使用されます。

この関数は、特に時間を制御したい場合や、他の処理との間隔を調整したい場合に便利です。

例えば、APIリクエストの間隔を空けたり、アニメーションのフレームレートを調整したりする際に役立ちます。

sleep関数の基本的なシンタックスは以下の通りです。

import time
time.sleep(seconds)

ここで、secondsは待機する時間を秒単位で指定します。

小数点を使うことで、ミリ秒単位やマイクロ秒単位の待機も可能です。

例えば、time.sleep(1.5)とすると、1.5秒間の待機が行われます。

sleep関数の使い方

基本的な使い方

sleep関数を使用するには、まずtimeモジュールをインポートする必要があります。

次に、time.sleep()を呼び出し、待機したい時間を引数として渡します。

以下は基本的な使い方の例です。

import time
print("処理を開始します。")
time.sleep(2)  # 2秒待機
print("処理が再開されました。")
処理を開始します。
(2秒待機)
処理が再開されました。

秒単位での待機

sleep関数は、秒単位で待機するのが最も一般的な使い方です。

整数や浮動小数点数を指定することで、任意の秒数だけプログラムを停止させることができます。

import time
print("1秒待機します。")
time.sleep(1)  # 1秒待機
print("1秒経過しました。")
1秒待機します。
(1秒待機)
1秒経過しました。

ミリ秒単位での待機

ミリ秒単位で待機する場合、浮動小数点数を使用して秒数を指定します。

例えば、500ミリ秒待機するには、time.sleep(0.5)とします。

import time
print("500ミリ秒待機します。")
time.sleep(0.5)  # 500ミリ秒待機
print("500ミリ秒経過しました。")
500ミリ秒待機します。
(0.5秒待機)
500ミリ秒経過しました。

マイクロ秒単位での待機

マイクロ秒単位での待機は、秒数を小数点以下6桁まで指定することで実現できます。

例えば、250マイクロ秒待機するには、time.sleep(0.00025)とします。

import time
print("250マイクロ秒待機します。")
time.sleep(0.00025)  # 250マイクロ秒待機
print("250マイクロ秒経過しました。")
250マイクロ秒待機します。
(0.00025秒待機)
250マイクロ秒経過しました。

このように、sleep関数を使うことで、さまざまな単位での待機が可能です。

実際のコード例

1秒待機するコード例

以下のコードは、1秒間待機するシンプルな例です。

プログラムが開始されてから1秒後にメッセージが表示されます。

import time
print("1秒待機します。")
time.sleep(1)  # 1秒待機
print("1秒経過しました。")
1秒待機します。
(1秒待機)
1秒経過しました。

ループ内での使用例

sleep関数は、ループ内での使用にも適しています。

以下の例では、1秒ごとにカウントを表示します。

import time
for i in range(5):
    print(f"{i + 1}秒経過しました。")
    time.sleep(1)  # 1秒待機
1秒経過しました。
(1秒待機)
2秒経過しました。
(1秒待機)
3秒経過しました。
(1秒待機)
4秒経過しました。
(1秒待機)
5秒経過しました。

複数のsleepを使った例

複数のsleepを使うことで、異なる待機時間を設定することも可能です。

以下の例では、最初に2秒待機し、その後1秒待機します。

import time
print("2秒待機します。")
time.sleep(2)  # 2秒待機
print("次に1秒待機します。")
time.sleep(1)  # 1秒待機
print("待機が完了しました。")
2秒待機します。
(2秒待機)
次に1秒待機します。
(1秒待機)
待機が完了しました。

これらの例から、sleep関数を使ってプログラムの実行を制御する方法が理解できるでしょう。

応用例

ウェブスクレイピングでの使用

ウェブスクレイピングでは、サーバーに過剰な負荷をかけないために、リクエストの間隔を調整することが重要です。

sleep関数を使うことで、次のリクエストまでの待機時間を設定できます。

以下は、BeautifulSoupを使ったウェブスクレイピングの例です。

import time
import requests
from bs4 import BeautifulSoup
url = "https://example.com"
for i in range(5):
    response = requests.get(url)
    soup = BeautifulSoup(response.text, 'html.parser')
    print(f"ページ{i + 1}を取得しました。")
    time.sleep(2)  # 2秒待機

このコードでは、5回のリクエストの間に2秒の待機を挟んでいます。

APIリクエストの間隔調整

APIを利用する際、リクエストの頻度を制限することが求められる場合があります。

sleep関数を使って、リクエストの間隔を調整することができます。

以下は、APIリクエストの例です。

import time
import requests
api_url = "https://api.example.com/data"
for i in range(3):
    response = requests.get(api_url)
    print(f"APIからのデータ取得: {response.json()}")
    time.sleep(3)  # 3秒待機

このコードでは、APIからデータを取得するたびに3秒の待機を行っています。

ゲーム開発でのフレームレート制御

ゲーム開発において、フレームレートを一定に保つためにsleep関数を使用することがあります。

以下は、簡単なゲームループの例です。

import time
frame_rate = 30  # フレームレートを30FPSに設定
frame_time = 1 / frame_rate  # 各フレームの時間を計算
while True:
    start_time = time.time()
    
    # ゲームの更新処理
    print("ゲームの更新処理を実行中...")
    
    # フレームの描画処理
    print("フレームを描画中...")
    
    # フレームの時間を計算し、必要に応じて待機
    elapsed_time = time.time() - start_time
    time.sleep(max(0, frame_time - elapsed_time))  # 残りの時間を待機

このコードでは、30FPSを維持するために、各フレームの処理時間に応じて待機時間を調整しています。

これにより、ゲームがスムーズに動作します。

よくある質問

sleep関数はCPUリソースを消費しますか?

sleep関数は、指定した時間だけプログラムの実行を停止させるため、CPUリソースをほとんど消費しません。

実行中のスレッドは待機状態になり、他のプロセスやスレッドがCPUを使用できるようになります。

そのため、リソースの効率的な利用が可能です。

sleep関数とtimeモジュールの関係は?

sleep関数はPythonのtimeモジュールに含まれる関数です。

timeモジュールは、時間に関連するさまざまな機能を提供しており、sleep関数はその中の一つとして、プログラムの実行を一時停止させるために使用されます。

timeモジュールをインポートすることで、sleep関数を利用できるようになります。

sleep関数の精度はどの程度ですか?

sleep関数の精度は、オペレーティングシステムやハードウェアに依存しますが、一般的にはミリ秒単位での精度があります。

ただし、非常に短い待機時間(例えば、数ミリ秒)を指定した場合、実際の待機時間が指定した時間よりも長くなることがあります。

これは、スケジューリングやシステムの負荷による影響です。

まとめ

この記事では、Pythonのsleep関数の基本的な使い方や応用例について解説しました。

sleep関数を使うことで、プログラムの実行を制御し、さまざまなシナリオでの時間管理が可能になります。

ぜひ、実際のプロジェクトでsleep関数を活用して、より効率的なプログラムを作成してみてください。

当サイトはリンクフリーです。出典元を明記していただければ、ご自由に引用していただいて構いません。

関連カテゴリーから探す

  • URLをコピーしました!
目次から探す