PyCharm 2020.2ヘルプ

パート1: Pythonコードのデバッグ

例の準備

数学のクラスの2次式(英語)を覚えていますか?この式はA、B、Cの式とも呼ばれ、単純な2次方程式 ax2 + bx + c = 0を解くために使用されます。二次式を手動で解くとすぐに退屈になるため、スクリプトで置き換えましょう。

プロジェクト内のファイルに次のコードをコピーします(このコードは手動で入力することをお勧めします)。

import math class Solver: def demo(self, a, b, c): d = b ** 2 - 4 * a * c if d > 0: disc = math.sqrt(d) root1 = (-b + disc) / (2 * a) root2 = (-b - disc) / (2 * a) return root1, root2 elif d == 0: return -b / (2 * a) else: return "This equation has no roots" if __name__ == '__main__': solver = Solver() while True: a = int(input("a: ")) b = int(input("b: ")) c = int(input("c: ")) result = solver.demo(a, b, c) print(result)

ご覧のとおり、ここに main 句があります。それは実行がそれで始まり、変数 a , bcの希望する値を入力することを可能にし、方法 demoを入力することを意味します。

ブレークポイントの配置

ブレークポイントを配置するには、アプリケーションを一時停止する行の横にあるガターをクリックします。

Adding a breakpoint

詳細はセクションブレークポイントを参照してください。

デバッガセッションの開始

ブレークポイントを追加したため、これでデバッグの準備が整いました。

PyCharmでは、いくつかの方法でデバッガセッションを開始できます。いずれかを選択しましょう:ガターで Run をクリックし、開いたポップアップメニューでコマンドデバッグ 'Solver'を選択します。

debug Python script

デバッガが起動し、デバッグツールウィンドウのコンソール・タブが表示され、目的の値を入力できます。

Debugging console

ちなみに、デバッグ・コンソールでは、Pythonコマンドを入力できます。

Using a Python prompt in the debug console

その後、デバッガは最初のブレークポイントでプログラムをサスペンドします。これは、ブレークポイントを持つ行がまだ実行されていないことを意味します。線が青くなります。

Debugging stop st the first breakpoint

デバッガタブステップツールバーで、ボタンResumeをクリックして、次のブレークポイントに移動します。

インラインデバッグ

エディターでは、コード行の横に灰色のテキストが表示されます。

Inline debugging

どういう意味でしょうか?

これは、いわゆるインラインデバッグの結果です。最初の行は、Solver オブジェクトのアドレスと、入力した変数 a , b および c の値を示しています。

インラインデバッグをオフにすることができます。

デバッガセッションの途中で実行できることに注意してください。

進めましょう!

ボタンResumeをクリックしたところで、青いマーカーがブレークポイントの次の行に移動することがわかりました。

ステップツールバーボタンを使用すると、次の行に移動します。例:Step Overボタンをクリックします。インラインデバッグが有効になっているため、変数の値はエディターで斜体で表示されます。

Step into

ボタンStep intoをクリックすると、行 a = int(input("a: ")) の後にデバッガーがファイルparse.pyに入ることがわかります。

Stepping into

ただし、ボタンStep overを続行すると、アプリケーションが次のループに渡されることがわかります。

Expecting next input

独自のコードに集中したい場合は、ボタン自分のコードにステップ・イン The Step into button を使用してください。ライブラリクラスにステップインすることは避けられます。

監視

PyCharmでは変数を見ることができます。変数タブのツールバーの The Watch button をクリックし、見たい変数の名前を入力してください。コード補完が利用可能であることに注意してください。

adding a new watch

最初は、変数がまだ定義されていないというエラーが表示されます。

Incorrect adding watch

ただし、プログラムの実行が変数を定義するスコープまで続くと、ウォッチは次のビューを取得します。

Correst adding watch

式の評価

最後に、いつでも式を評価できます。例:変数の値を確認したい場合は、Evaluate expressionボタンをクリックしてから、開いたダイアログで評価をクリックします。

evaluating expressions

PyCharmは任意の式を評価することができます。例:

evaluating a math expression

セクション式の評価を参照してください。

デバッグ・コンソールにいくつかのコマンドを入力して、変数の値を表示できます。( Python prompt アイコンはこのモードを切り替えます)。例:a変数を変更できます。この変更は、エディターの対応するコードに表示されます。

Debugging using the prompt console

10進変数の形式の変更

PyCharmデバッガーでは、int 変数を16進形式または2進形式でプレビューできます。これは、バイナリプロトコルを含むネットワークスクリプトをデバッグするときに特に役立ちます。

表示形式を変更するには、変数リストで1つまたは複数の int 変数を選択し、右クリックして、コンテキストメニューから次として表示 | 16 進を選択します。

Content menu to preview decimal values in the hexadecimal format

変数の形式は、変数のリストとエディターの両方で変更されます。

Hexadecimal representation of the debuged variables

要約

この簡単なチュートリアルは終わりました - おめでとうございます! それから学んだことを繰り返しましょう:

  • ブレークポイントの知識をリフレッシュし、ブレークポイントを配置する方法を学びました。

  • デバッガセッションを開始する方法と、デバッガコンソールにPythonプロンプトを表示する方法を学びました。

  • インラインデバッグについての知識をリフレッシュしました。

  • ステップ、監視、表現を評価することに手を入れました。

次のステップは、プロフェッショナルエディションのユーザーを対象としています。これはDjangoテンプレートのデバッグです。

最終更新日: 2020年7月13日

関連ページ:

ブレークポイント

ブレークポイントは、特定のポイントでプログラムの実行を一時停止する特別なマーカーです。これにより、プログラムの状態と動作を調べることができます。ブレークポイントは、単純な場合(たとえば、コード行に到達したときにプログラムを一時停止する場合)や、より複雑なロジック(追加の条件に対するチェック、ログメッ...

デバッガセッションを開始する

デバッグする前にソースコード内のブレークポイントを設定します。必要に応じて、対応する実行/デバッグ構成を作成または変更します。デバッグセッションは、選択された実行/デバッグ構成で開始します。いくつかのデバッグプロセスを同時に起動できることに注意してください。例:Pythonスクリプトのデバッグセッシ...

コンソール・タブ

このタブはでマークされ、出力およびエラー・ストリーム・メッセージを表示します。コンソールツールバー:スタックトレースのアップ/ダウン)このボタンをクリックすると、スタックトレース内を上下に移動し、カーソルがソースコード内の対応する場所にジャンプします。ソフトラップを使用このボタンをクリックすると、出...

デバッグツールウィンドウ

このツールウィンドウは、デバッグを開始すると使用可能になります。It displays the output generated by the debugging session for your application. If you are debugging multiple実行/デバッグ構成...

インライン値ビュー

インライン値機能を使用すると、デバッグツールウィンドウの変数ペインに切り替えることなく、ソースコードで使用されている変数の値をその使用方法のすぐ隣に表示できるため、デバッグ手順が簡単になります。このオプションが有効になっている場合、デバッグセッションを起動してプログラムをステップ実行すると、変数の値...

変数

このトピックの内容:変数ペインでは、アプリケーションのオブジェクトに格納されている値を調べることができます。フレームペインでスタックフレームが選択されると、変数ペインはそのスコープ内のすべてのデータ(メソッドパラメータ、ローカルおよびインスタンス変数)を表示します。このペインでは、オブジェクトのラベ...