https://www.sejuku.net/blog/wp-content/themes/voice_child/images/samurai_logo.png 侍エンジニア塾が運営するプログラミング入門者向け学習情報サイト

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

フクロウ
書いた人 フクロウ


侍エンジニア塾ブログは、未経験からWebアプリ開発と仕事獲得をサポートする
侍エンジニア塾のオウンドメディアです。
プログラミング学習を覗き見

こんにちは。フリーランスのフクロウです。

プログラムを書く時に

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

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

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

sleepの使い方

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

これでtimeモジュールの中からsleep関数のみをimportする事ができました。

この方法でimportすると、sleep以外のtime内の関数にアクセスできなくなるので注意してください。

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

このように、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関数はプログラム中で何秒か処理をストップさせたいときなどに便利ですね。

簡単ですぐ使いこなせる機能なので、ぜひ活用してください。

Pythonカリキュラム無料公開中!
この記事はPython入門完全攻略ガイド【基礎学習/アプリ開発/仕事獲得】の一部になります。このカリキュラムは、プログラミング入門者が、基礎学習からアプリ開発、さらには仕事獲得まで体系的に学べる内容となっています。

Python学習に必要な情報を一つにまとめていますので効率よくPythonを学ぶことが出来ます。この機会に是非活用していただければと思います。



33歳、未経験だった僕がフリーエンジニアになれた理由
現在フリーでWEBエンジニアをやられている濱口直行さん。33歳で、プログラミングを学び始め、約半年という短い期間で独立までされた学習ログを余すことなくインタビューさせていただきました。

プログラミングを学習中の方はもちろん、独立をお考えの方まで幅広く活用できる記事になっています。この機会に是非活用していただければと思います。


Pythonを最短で習得したい方へ
元々ITリテラシーの高い方やプログラムの学び方がわかっている方であれば、この記事通りに進めていけば、Pythonを独学で習得することができるでしょう。

ただし、実際の学習期間中はつまづいている時間がほとんどです。

「なかなかやり遂げられ無い、挫折してしまった」
「時間が足りない」
「情報が少なくどう調べればいいかわからない」
「エラーを解決することができない」
このような悩みを抱えている方も少なく無いと思います。

  • もう挫折したくない
  • 本業と両立しながら、好きな時間で自分のペースで勉強を続けていきたい
  • 自分だけのカリキュラムで効率的に勉強したい
そんな方はお気軽に侍エンジニア塾までご相談ください。

お一人お一人に専属のインストラクターがつくので、通常のスクールでは難しい、AI(人工知能)や機械学習、IoTについて学習することできます。

まずは『無料体験レッスン』で、弊社のコンサルタントと一緒にあなた専用の学習方やカリキュラムを考えてみませんか?

Pythonならではの学習方法や、現役Pythonエンジニアから貴重なアドバイスを受けることができます。

詳しくは下の画像をクリックして弊社サービス内容をご確認ください。

cta_mtm_python

非常識な結果を出した卒業生

活躍する現役エンジニア

人気記事セレクション

LINEで送る
Pocket

この記事が気に入ったら
いいね!をしてフォローしよう

最新情報をお届けします

書いた人

フクロウ

フクロウ

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