【必読】Pythonの無限ループを実装・解除する方法を解説|実例付

※本サイトにはプロモーション・広告が含まれています。

(最終更新日:2023年7月)

✔このような方へ向けて書かれた記事となります

「Pythonで無限ループを作成してみたい」
「Python無限ループの使い方・構文を知りたい」
「無限ループの実例が見たい」

✔当記事を通じてお伝えすること

  • Python無限ループの基本概念
  • 無限ループの作成方法と使い方
  • Pythonでの無限ループの実例

当記事では、Python無限ループの基本から応用まで、具体的な例を交えてわかりやすく説明しています。

ぜひ最後までお付き合いください。

筆者プロフィール

筆者プロフィールアイコン

【現職】プロダクトマネージャー

【副業】ブログ(月間17万PV)/YouTube/Web・アプリ制作

「プログラミング × ライティング × 営業」の経験を活かし、30後半からのIT系職へシフト。当サイトでは、実際に手を動かせるWebアプリの開発を通じて、プログラミングはもちろん、IT職に必要な情報を提供していきます。

【当ブログで紹介しているサイト】

当サイトチュートリアルで作成したデモ版日報アプリ

Django × Reactで開発したツール系Webアプリ

✔人に見せても恥ずかしくないコードを書こう

「リーダブルコード」は、わかりやすく良いコードの定義を教えてくれる本です。

  • 見るからにきれいなコードの書き方
  • コードの分割方法
  • 変数や関数の命名規則

エンジニアのスタンダートとすべき基準を一から解説しています。

何回も読むのに値する本なので、ぜひ手にとって読んでみてください。

無限ループの基本

こちらでは、無限ループとはなにかなどの基本事項を伝えしていきます。

  • 無限ループとは
  • 無限ループの用途と注意点

無限ループとは

無限ループとは、プログラム内で処理が終わることなく永遠に繰り返されるループのこと

これは、ループの終了条件が満たされることがないために発生します。

例えばPythonでは、「while True:」というコードで無限ループの作成が可能です。

while True:
    print("This is an infinite loop")

このコードは”True”が常に真であるため、print文が何度も実行され続けます。

無限ループの用途と注意点

無限ループは、サーバーの監視やユーザーからの入力待ちなど、特定の条件が満たされるまでプログラムを実行し続ける場合に有用です。

しかし無限ループを不適切に使用すれば、プログラムが制御不能になり、リソースを過剰に消費してしまうデメリットもあります。

これを避けるためには、無限ループ内で適切な終了条件を設定することが重要です。

Pythonのwhile文を使用した無限ループ

こちらでは、Pythonのwhile文を使用して無限ループを作成する方法について解説します。

  • while文の基本構文
  • 無限ループの作成方法
  • while文の正常終了後の処理:else

while文の基本構文

Pythonのwhile文は、条件式が真であるる限り、ブロック内のコードを繰り返し実行します。

以下が基本的な構文です。

while 条件:
    # 処理

ここで条件は、評価されて真か偽かを返す式です。

条件が真の間、ループ内のコードが実行されます。

無限ループの作成方法

無限ループを作成するには、while文の条件式を常に真になるように設定します。

while True:

無限ループ内で適切な終了条件を設定し、その条件が満たされた場合にループを抜けるようにすることが重要です。

while True:
    user_input = input("Enter 'exit' to end the loop: ")
    if user_input == 'exit':
        break
    print(f"You entered: {user_input}")

ユーザーが’exit’を入力するとループが終了します。

while文の正常終了後の処理:else

while文には、ループが正常に終了したとき(break文で終了しなかった場合)に実行されるオプションのelse節を含められます。

これはループの終了条件が外部要因によって制御される場合に役立ちます。

count = 0
while count < 3:
    print(f"カウンター: {count}")
    count += 1
else:
    print("ループは正常に終了しました。.")

for文と無限イテレータを使用した無限ループ

こちらでは、for文と無限イテレータを使用して無限ループを作成する方法を見ていきます。

  • for文の基本構文
  • 無限イテレータの作成方法
  • Pythonのitertoolsモジュールの紹介

for文の基本構文

Pythonのfor文は、シーケンス(リスト、タプル、文字列など)やイテレータを通じてループを行うために使用されます。

基本的な構文は以下の通りです。

for 変数 in シーケンス:
    # 処理

無限イテレータの作成方法

itertoolsモジュールのcount()関数を使用して無限イテレータを作成しましょう。

これをforループで処理することで、無限ループを作成できます。

from itertools import count

for i in count():
    print(i)
    if i >= 10:
        break

上記の例では、0から無限に増加するカウンターを作成していますが、iが10以上になった時点でループを終了させています。

itertoolsについて、こちらの記事で詳しく解説しています。

Pythonのitertoolsモジュールの紹介

Pythonのitertoolsモジュールは、効率的なループをおこなえる多くの関数を提供しています。

無限ループを作成する場合、itertoolsには以下のような関数があります。

  • count()
  • cycle()
  • repeat()

cycle()関数は、与えられたシーケンスを無限に繰り返します。

from itertools import cycle

count = 0
for item in cycle(['a', 'b', 'c']):
    print(item)
    count += 1
    if count > 10:
        break

この例では、リスト['a', 'b', 'c']を無限に繰り返していますが、カウントが10を超えた時点でループを終了しています。

ループの制御方法

こちらでは、ループの制御方法について学びます。

  • ループの途中で終了: break文
  • 特定の条件で処理をスキップ: continue文

ループの途中で終了: break文

break文を使用すると、ループを途中で終了させられます。

これは特定の条件が満たされた時点で、ループを抜けたい場合に便利です。

while True:
    user_input = input("Enter 'q' to quit: ")
    if user_input == 'q':
        break
    print(f"You entered: {user_input}")

ユーザーが’q’を入力すると、break文が実行されループが終了します。

特定の条件で処理をスキップ: continue文

continue文を使用すると、ループの残りの部分をスキップして、次のイテレーションに進めます

これは、特定の条件下で一部の処理をスキップしたい場合に使用されます。

for i in range(10):
    if i % 2 == 0:
        continue
    print(f"Odd number: {i}")

この例では、偶数の場合、print文はスキップされます。

coninue文についてはこちらをご覧ください。

Pythonのcontinueを使いこなす|実例付きで丁寧に解説
Pythonで「continue」ステートメントを使用する方法について知りたいですか?continueステートメントはループの現在のイテレーションをスキップし、次のイテレーションに進むための重要なツールです。本記事では、continueの使用法と実践的な例を解説します。初心者の方も安心してご覧ください。

無限ループ中の入力操作

無限ループを扱う中での、入力操作方法を深堀りして伝えます。

  • キー入力で無限ループを抜ける方法
  • 強制終了する方法とその際の注意点

キー入力で無限ループを抜ける方法

無限ループ中にキー入力を監視し、特定のキーが押されたときにループを終了させられます。

こちらはリアルタイムのユーザーインタラクションを取り入れたプログラムにおいて、非常に役立つでしょう。

import msvcrt  # Windows用のモジュール

while True:
    print("Running... Press 'q' to quit.")

    if msvcrt.kbhit() and msvcrt.getch().decode() == 'q':
        break

Windowsで動作して、qキーが押された時点で無限ループを終了します。

注意点として、異なるOSには異なるキー入力監視の方法があるため、対象とするOSに応じて適切なモジュールやライブラリを使用してください。

強制終了する方法とその際の注意点

プログラムが無限ループに陥ってしまった場合、手動で強制終了する必要があります。

コンソール上で、以下のキーをを押すことで、プログラムを強制終了しましょう。

Ctrl + C

ただしファイルが破損したり、データが失われたりする可能性があるため注意が必要です。

まとめ

当記事では、Pythonで無限ループを使う方法と、それを制御するためのテクニックについて学びました。

  • 無限ループの作成、制御方法のおさらい
  • 今後の学習への推奨

無限ループは強力なツールですが、使い方を誤るとプログラムが停止しなくなるなどの問題が生じる可能性があるため、慎重に取り扱う必要があります。

break文やcontinue文を使用してループを制御したり、特定のキー入力でループを終了させる方法を使いましょう。

今後はこれらの知識を活かして、効率的なプログラムを書き、さらなる学習と実践を進めてください。

無限ループを使う際は常に注意深く、プログラムの安全性と効率性を考慮しながらコーディングすることが必要です。

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