プログラムを終了する方法を知っておくことは重要であり、さまざまなシナリオで役立ちます。たとえば、シンプルなゲームを作成している場合、特定のユーザー入力や特定の条件が満たされたときに終了することができます。Pythonプログラムを停止する3つの方法の違いを理解しましょう。
1. quit()またはexit()を使用する
Pythonプログラムを終了する最も簡単な方法の1つは、組み込みメソッドのquit()またはexit()のいずれかを使用することです。quit()またはexit()を呼び出すと、プログラムが終了します。
quit()関数とexit()関数はまったく同じことを行います。どちらを使用するかは個人の好みです。
quit()関数を使用してPythonプログラムを終了する方法を以下に示します。
for num in range(10): if num == 9: quit() print(num)
上記のサンプルプログラムは、0から8までの整数をコンソールに出力します。numが9になると、プログラムは終了します。quit()コマンドを使用して、Python Integrated Development and Learning Environment (IDLE)を終了することもできます。これにより、Pythonスクリプトを対話的に実行できます。
quit()とexit()はどちらもsiteモジュールに依存しているため、実稼働環境では使用しないでください。次のメソッドであるsys.exit()は、より良いオプションです。
2. sys.exit()を使用する
プログラムでsys.exit()を呼び出すと、PythonはSystemExit例外を発生させます。整数終了コード(デフォルトは0)を指定するためのオプション引数を受け入れます。オブジェクトを渡すこともできます。これにより、終了コードが1になり、オブジェクトの文字列値が標準エラーに出力されます。
import sys # Remember to include this statement at the top of the module for num in range(10): if num == 5: sys.exit("You exited the program") print(num)
プログラムの出力を以下に示します。
quitおよびexitメソッドと同様に、sys.exit()もSystemExit例外を発生させます。これは、sys.exit()またはraise SystemExit()を呼び出すことができることを意味します。どちらもオプション引数を受け入れます。
上記のコードのしくみがわからない場合は、最も重要なPython関数のことを学ぶ必要があります。
3. os._exit()を使用する
プログラムを終了する3番目の方法は、特別なos._exit()メソッドです。終了ステータスコードを指定するためのオプション引数を渡すことができます。os._exit()はosモジュールから来ており、Pythonプログラムが終了するときに発生する通常のクリーンアップアクティビティを実行せずに、プロセスをすぐに終了します。
この関数は通常のクリーンアップを実行せずに終了するため、特別なインスタンスでのみ使用してください。Pythonのドキュメントによると、良い例は、フォーク後のプロセス(os.fork()を使用して作成された新しいプロセス)です。
os._exit()関数を使用してプログラムを終了する方法を以下に示します。
import os import sys def child_process(): print("Child process is running.") os._exit(0) def main(): print("Parent process is running.") try: pid = os.fork() if pid == 0: # Code in the child process child_process() else: # Code in the parent process print(f"Parent process is continuing with child process PID: {pid}") except OSError as e: print(f"Fork failed: {e}") sys.exit(1) print("Parent process is done.") if __name__ == "__main__": main()
上記のコードは、以下を出力します。
Pythonでプログラムを終了するにはどのメソッドを使用すべきか?
Pythonは、プログラムを終了するためのさまざまなメソッドを提供しています。ただし、これらのメソッドのほとんどは同じことを行います。Pythonを学習する際にプログラムに終了メカニズムを追加する必要がある場合、これは意思決定の負担を軽減するはずです。
要約すると、sys.exit()はPythonでプログラムを終了するための最適なメソッドです。オプションの終了コードを含むSystemExit例外を発生させます。
quit()およびexit()メソッドは、Python REPLを使用する場合に適しています。siteモジュールに依存しているため、常に利用できるとは限らないため、実稼働環境では使用しないでください。プロセスをフォークするコードを使用している場合を除いて、os._exit()を使用する必要があることはほとんどありません。
コメントする