Pythonで無限ループを強制停止する方法:Ctrl+Cキーボード割り込みの使い方
プログラミングにおけるループ(繰り返し処理)は、通常「決められた回数だけ実行する」か「特定の条件が満たされるまで実行する」ように設計されています。しかし、終了条件が一度も満たされない場合、ループは永永遠に繰り返し続けることになります。これがいわゆる無限ループです。
無限ループとは何か?
例えば、while True: のように条件が常に真(True)となるwhile文を書くと、プログラムは明示的に中断しない限り処理を止めることができません。このような状態に陥った場合、プログラムの外部から強制的に実行を中断する必要があります。
Ctrl+Cで無限ループを停止する
Pythonで無限ループを強制停止するための標準的な方法は、キーボード割り込み(Keyboard Interrupt)を発生させることです。具体的には、Ctrl + C キーを同時に押します。これにより、実行中のループが中断され、KeyboardInterrupt 例外が発生してプログラムが停止します。
実行例
以下は、IDLEやターミナル上で while True: ループを実行し、Ctrl+Cで中断した際の出力例です。
>>> while True:
print('hello')
hello
hello
hello
hello
hello
hello
Traceback (most recent call last):
File "<pyshell#18>", line 2, in <module>
print('hello')
KeyboardInterrupt
出力の最後に表示されている KeyboardInterrupt は、ユーザーがCtrl+Cを押したことによって発生した例外です。エラーのように見えますが、これは意図的な中断操作による正常な挙動です。
補足:環境ごとの注意点
- IDLE(Pythonシェル): Ctrl+Cで即座に中断できます。
- Windowsのコマンドプロンプト: Ctrl+C、または Ctrl+Break でも中断可能です。
- Jupyter Notebook: ツールバーの「■(停止)」ボタン、またはメニューの Kernel → Interrupt を使うと同様の効果が得られます。
また、意図的に無限ループを使う場合でも、try〜except KeyboardInterrupt: を組み合わせれば、Ctrl+Cが押されたときにクリーンアップ処理を行ってから安全に終了させることもできます。
-
Tkinterで無限ループを実行する方法をわかりやすく解説
Tkinterで無限ループを実行したい場合は、afterメソッドを使用します。このメソッドは、指定した時間が経過した後に自身(メソッド)を再帰的に呼び出すことができ、ユーザーが停止を決めるまで処理を繰り返し続けることができます。ここでは、シンプルな例をもとに、無限ループの開始と停止を行う方法を詳しく見ていきましょう。実行手順必要なライブラリをインポートし、Tkinterフレームのインスタンスを作成します。win.geometryメソッドを使ってウィンドウのサイズを設定します。自分自身を再帰的に呼び出して、ウィンドウ上にテキストを表示し続けるユーザー定義関数「infinite_loop」を作成し
-
PythonのCGIとは?仕組みとサーバー設定方法をわかりやすく解説
CGI(Common Gateway Interface:共通ゲートウェイインターフェース)は、HTTPサーバーなどの情報サーバーと外部のゲートウェイプログラムがやり取りするための標準規格です。現在のバージョンはCGI/1.1であり、CGI/1.2が策定中です。Webブラウジングの流れCGIの概念を理解するために、ハイパーリンクをクリックして特定のWebページやURLを閲覧するときに何が起こるのかを見てみましょう。ブラウザがHTTP Webサーバーに接続し、URL(つまりファイル名)を要求します。WebサーバーはURLを解析してファイル名を探します。該当するファイルが見つかればそれをブラウザへ