【初心者向け】Pythonのsleep関数とは?使い方・秒数指定・注意点まで徹底解説!

python

「プログラムを一定時間だけ止めたい」
「ループの間に少し間をあけたい」

そんなときに便利なのが、Pythonのsleep()関数です。この関数を使うと、指定した時間だけプログラムを休ませることができます。

この記事では、sleep()関数の使い方を基本から応用まで、コード例とともにわかりやすく説明します。

スポンサーリンク

sleep関数の基本的な使い方

最初にtimeモジュールを読み込む

sleep関数を使うには、まずtimeモジュールを読み込みます。

import time

基本の書き方

time.sleep(3)  # 3秒間プログラムを停止

この一行で、プログラムが3秒間止まります。とても簡単ですね。

動作確認してみよう

print("開始")
time.sleep(2)
print("終了")  # 2秒後に表示される

このコードを実行すると、「開始」が表示されてから2秒後に「終了」が表示されます。

時間の指定方法

秒数の単位について

sleep関数で指定する時間の単位は「秒」です。

time.sleep(1)    # 1秒間停止
time.sleep(5)    # 5秒間停止
time.sleep(60)   # 60秒(1分)間停止

小数点も使える

0.1秒や0.5秒など、1秒より短い時間も指定できます。

time.sleep(0.5)  # 0.5秒(500ミリ秒)停止
time.sleep(0.1)  # 0.1秒(100ミリ秒)停止

これで、とても細かい時間調整ができます。

sleep関数の活用例

カウントダウンを作る

for i in range(3, 0, -1):
    print(i)
    time.sleep(1)
print("スタート!")

実行すると、「3、2、1、スタート!」と1秒間隔で表示されます。

定期的にメッセージを表示

for i in range(5):
    print(f"メッセージ {i + 1}")
    time.sleep(2)  # 2秒間隔で表示

ローディング画面を作る

print("読み込み中", end="")
for _ in range(5):
    time.sleep(0.5)
    print(".", end="", flush=True)
print(" 完了!")

「読み込み中…..完了!」のような表示ができます。

Webアクセスの間隔を調整

ウェブサイトから情報を取得するとき、連続でアクセスするとサーバーに負担をかけてしまいます。sleep関数で間隔をあけることで、マナーを守ったアクセスができます。

import requests

urls = ["https://example.com/page1", "https://example.com/page2"]

for url in urls:
    response = requests.get(url)
    print(f"ステータス: {response.status_code}")
    time.sleep(2)  # 2秒間隔でアクセス

sleep関数を使うときの注意点

プログラム全体が完全に止まる

sleep関数を使うと、そのプログラム全体が指定した時間だけ完全に停止します。この間は他の処理もできません。

GUIアプリでは別の方法を使う

ウィンドウを持つアプリケーション(GUIアプリ)では、sleep関数を使うとウィンドウが固まったように見えてしまいます。

このような場合は、以下の方法を使います:

  • Tkinterの場合:after()メソッド
  • 非同期処理の場合:asyncio.sleep()

非同期処理での代替方法

import asyncio

async def main():
    print("待機中...")
    await asyncio.sleep(2)  # 非同期での待機
    print("完了!")

# 実行方法
asyncio.run(main())

実用的なテクニック

リトライ処理を作る

何かの処理が失敗したとき、少し時間をおいてから再実行する仕組みです。

import random

def unstable_function():
    # 50%の確率で失敗する関数
    if random.random() < 0.5:
        raise Exception("処理に失敗しました")
    return "成功!"

# リトライ処理
for attempt in range(3):  # 最大3回まで試す
    try:
        result = unstable_function()
        print(result)
        break  # 成功したらループを抜ける
    except Exception as e:
        print(f"試行 {attempt + 1}: {e}")
        if attempt < 2:  # 最後の試行でなければ待機
            time.sleep(1)

時間を計測しながら実行

import time

start_time = time.time()  # 開始時刻を記録

print("重い処理を開始...")
time.sleep(3)  # 重い処理のシミュレーション
print("処理完了")

end_time = time.time()  # 終了時刻を記録
elapsed_time = end_time - start_time

print(f"処理時間: {elapsed_time:.2f}秒")

まとめ

Pythonのtime.sleep()関数は、指定した秒数だけプログラムを一時停止できる便利な機能です。

覚えておきたいポイント

項目内容
基本の使い方time.sleep(秒数)で一時停止
時間の単位秒単位(小数点も可能)
主な用途ループ調整、アクセス間隔、演出効果
注意点プログラム全体が停止する
代替手段非同期処理ではasyncio.sleep()を使用

sleep関数は、プログラムにタイミングや間を作るときに欠かせない機能です。
ループ処理やウェブアクセス、ユーザー向けの演出など、さまざまな場面で活用してみてください。

プログラミングの世界では、「待つ」ことも大切な処理の一つなのです。

コメント

タイトルとURLをコピーしました