Python のデバッグ方法とは何ですか? Python デバッグ コマンドの使い方を 3 分で説明します。
プログラマが一度にプログラムを書いて正常に実行できる確率は非常に低く、基本的には 1% を超えません。修正が必要なさまざまなバグが常に存在します。いくつかのバグは非常に単純です。エラー メッセージを見ればわかります。いくつかのバグは非常に複雑です。エラーが発生したときにどの変数が正しい値を持ち、どの変数が間違った値を持っているかを知る必要があります。したがって、次のことが必要です。プログラムをデバッグし、バグを修正するための手段の完全なセット。この方法は、プログラミングでは デバッグ コマンド と呼ばれます。
最初の方法は、シンプル、直接的、粗雑で効果的です。これは、print() を使用して、問題がある可能性のある変数を出力します。
def foo(s): n = int(s) print('>>> n = %d' % n) return 10 / ndef main(): foo('0') main()
実行後、出力された変数を探します。出力の値:
$ python err.py >>> n = 0 Traceback (most recent call last): ... ZeroDivisionError: integer division or modulo by zero
print() を使用する最大の欠点は、将来これを削除しなければならないことです。print() がプログラム内のあらゆる場所に存在し、実行結果がジャンク情報も多く含まれています。そこで、2 番目の方法があります。
Assertion
表示を支援するために print() が使用される場合は常に、代わりにアサーションを使用できます。
def foo(s): n = int(s) assert n != 0, 'n is zero!' return 10 / ndef main(): foo('0')
assert の意味式 n != 0 が True である必要があります。そうでない場合、プログラム動作のロジックに従って、次のコードは間違いなく間違っています。
アサーションが失敗すると、assert ステートメント自体が AssertionError をスローします:
$ python err.py Traceback (most recent call last): ... AssertionError: n is zero!
プログラムがアサートでいっぱいの場合、print() と同じになります。ただし、-O パラメータを使用すると、Python インタープリタの起動時にアサートをオフにすることができます。
$ python -O err.py Traceback (most recent call last): ... ZeroDivisionError: division by zero
これをオフにすると、すべてのアサート ステートメントをパスとして表示できます。
logging
print() をlogging に置き換えるのが 3 番目の方法です。assert と比較すると、logging はエラーをスローせず、ファイルに出力できます:
import logging s = '0' n = int(s) logging.info('n = %d' % n) print(10 / n)
logging .info() はテキストを出力できます。実行しても、ZeroDivisionError 以外の情報は見つかりません。どうしたの?
心配しないでください。ログをインポートした後に構成の行を追加して、もう一度お試しください:
import logging logging.basicConfig(level=logging.INFO)
出力を参照してください:
$ python err.py INFO:root:n = 0 Traceback (most recent call last): File "err.py", line 8, in <module> print(10 / n) ZeroDivisionError: division by zero
これはログの利点であり、これにより次のことが可能になります。レコードを指定します。情報のレベルには、デバッグ、情報、警告、エラーなどが含まれます。level=INFO を指定すると、logging.debug は機能しません。同様に、level=WARNING を指定すると、debug と info が機能しなくなります。このようにして、さまざまなレベルの情報を削除せずに安全に出力でき、最終的にどのレベルの情報を出力するかを制御できます。
ロギングのもう 1 つの利点は、簡単な構成で、ステートメントをコンソールやファイルなどの異なる場所に同時に出力できることです。
以上がPython のデバッグ方法とは何ですか? Python デバッグ コマンドの使い方を 3 分で説明します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

PythonのPandasライブラリを使用する場合、異なる構造を持つ2つのデータフレーム間で列全体をコピーする方法は一般的な問題です。 2つのデータがあるとします...

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

正規表現は、プログラミングにおけるパターンマッチングとテキスト操作のための強力なツールであり、さまざまなアプリケーションにわたるテキスト処理の効率を高めます。

UvicornはどのようにしてHTTPリクエストを継続的に聞きますか? Uvicornは、ASGIに基づく軽量のWebサーバーです。そのコア機能の1つは、HTTPリクエストを聞いて続行することです...

この記事では、numpy、pandas、matplotlib、scikit-learn、tensorflow、django、flask、and requestsなどの人気のあるPythonライブラリについて説明し、科学的コンピューティング、データ分析、視覚化、機械学習、Web開発、Hの使用について説明します。

Pythonでは、文字列を介してオブジェクトを動的に作成し、そのメソッドを呼び出す方法は?これは一般的なプログラミング要件です。特に構成または実行する必要がある場合は...
