次の記事では、Python でのデバッグについて学びます。いくつかの Python デバッグ メソッドについて学び、Python プログラミングにおいて Python デバッグがどのような役割を果たすことができるかを理解します。
デバッグが必要な理由
プログラムを一度作成して正常に実行できる確率は非常に低く、基本的には 1% を超えません。修正が必要なさまざまなバグが常に存在します。いくつかのバグは非常に単純です。エラー メッセージを見ればわかります。いくつかのバグは非常に複雑です。エラーが発生したときにどの変数が正しい値を持ち、どの変数が間違った値を持っているかを知る必要があります。したがって、次のことが必要です。プログラムをデバッグし、バグを修正するための手段の完全なセット。では、Python はどのようにして をデバッグするのでしょうか?以下にその答えを示します。
最初の方法 は、単純、直接的、粗雑で効果的です。これは、print() を使用して、問題がある可能性のある変数を出力し、確認することです。 ##実行後の出力で検索する 出力された変数値:
def foo(s): n = int(s) print('>>> n = %d' % n) return 10 / n def main(): foo('0') main()
print() を使用する最大の欠点は、将来それを削除する必要があることです。プログラムの実行結果には大量のジャンク情報も含まれます。そこで、2 番目の方法があります。
2 番目の方法は、表示を支援するために print() が使用される場合はどこでも、代わりにアサーション (assert) を使用できます。 $ python err.py
>>> n = 0
Traceback (most recent call last):
...
ZeroDivisionError: integer division or modulo by zero
assert は、式 n ! を意味します。 = 0 は True である必要があります。そうでない場合、プログラム動作のロジックに従って、次のコードは間違いなく間違っています。
アサーションが失敗すると、assert ステートメント自体が AssertionError をスローします:
def foo(s): n = int(s) assert n != 0, 'n is zero!' return 10 / n def main(): foo('0')
プログラムがアサートでいっぱいの場合、print() と同じになります。ただし、-O パラメータを使用すると、Python インタープリタの起動時にアサートをオフにすることができます。
$ python err.py Traceback (most recent call last): ... AssertionError: n is zero!
これをオフにすると、すべてのアサート ステートメントをパスとして表示できます。
以上がこの記事の内容です、この記事では主に
pythonデバッグに関する関連知識を紹介しますので、上記の内容を理解するために活用していただければ幸いです。この記事で説明したことがあなたのお役に立ち、Python の学習が容易になることを願っています。 関連知識の詳細については、php 中国語 Web サイトの
Python チュートリアル以上がPython デバッグ; print() とアサーション (分析例 2)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。