ステップ 2: 最初の Python アプリケーションをデバッグする
問題の原因を突き止める
前のチュートリアルで Car スクリプトを作成して実行したことを覚えていますか? もう少し遊んで、average_speed
関数を次のように修正しましょう。
スクリプトを始めるときに何が起こるのかを見て、平均スピードを調べてみましょう。

おっと... PyCharm はランタイムエラーを報告します: ZeroDivisionError
コードをもう少し掘り下げて、何が間違っているのかを調べてみましょう。PyCharm デバッガーを使用して、コードで何が起こっているかを正確に確認できます。デバッグを開始するには、最初にいくつかのブレークポイントを設定する必要があります。ブレークポイントを作成するには、ガターをクリックするだけです

次に、main
句の横にあるガターのアイコンをクリックし、デバッグ 'Car' を選択します。PyCharm はデバッグセッションを開始し、デバッグツールウィンドウを表示します。

ボタンをクリックしてスクリプトの実行を続行し、コンソールタブで
S
を入力します。

スクリプトの実行を再開するには、ボタンをクリックします。さあ、見てください ! 例外はここにあります。別のブレークポイントも表示されました。デフォルトでは、PyCharm はあなたのコードで捕捉されなかった例外を停止し、稲妻のブレークポイントのアイコンを表示します。

デバッガーはエラーメッセージも表示します。それで問題が見つかりました。デバッガーで、値 self.time
がゼロに等しいことも確認できます。
周囲のコード
再度同じ問題が発生するのを避けるために、if
ステートメントを追加して、時刻がゼロに等しいかどうかを確認してみましょう。これを行うには、メソッド average_speed
でステートメント return self.odometer / self.time
を選択し、次に Ctrl+Alt+T ( )を押します。

PyCharm はスタブ if
を作成し、適切な内容で埋め尽くします。
編集後、次のようになります:

デバッガーがあなたのコードが何をしているかを見ることができるかどうかを見てみましょう。
詳細なデバッグ
デバッグツールウィンドウには、フレーム、変数、ウォッチの専用ペインと、すべての入力および出力情報が表示されるコンソールが表示されます。コンソールを常に表示したい場合は、PyCharm ウィンドウの端のいずれかにコンソールをドラッグできます。
ステップ
コードが行ごとに何をしているかを見たい場合は、すべての行にブレークポイントを置く必要はなく、コードをステップ実行することができます。
プログラム例をステップ実行するのがどのように見えるかを見てみましょう。ボタンをクリックし、車の平均速度(タイプ 'S' )を確認するためにコンソールに行ってください。
ステップツールバーボタンを使用して、次に停止する行を選択できます。

例:ステップオーバーボタンをクリックすると、青いマーカーが次のコード行に移動するのがわかります。

ステップインボタンをクリックすると、行
action = input("What should I do? [A]ccelerate, [B]rake, " "show [O]dometer, or show average [S]peed?").upper()
の後にデバッガーがファイル parse.py に入ることがわかります。

ただし、を引き続き使用すると、アプリケーションが次のループに渡されることがわかります。

独自のコードに集中したい場合は、自分のコードにステップインボタンを使用してください。ライブラリクラスにステップインすることは避けられます。
詳細については、ステップツールバーおよびプログラムのステップスルーのセクションを参照してください。
監視
PyCharm では、任意の変数を見ることができます。監視式タブのツールバーでをクリックして、見たい変数の名前を入力します。
my_car.time
にします。コード補完は次の場所にあります。

最初は、時刻が nil に等しいことがわかります。つまり、変数がまだ定義されていないことを意味します。

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

詳細については、監視式のセクションを参照してください。
インラインデバッグ
コードの実行内容を簡単に確認できる別の PyCharm 機能、インラインデバッガーに気づいたかもしれません。ブレークポイントを押すとすぐに、PyCharm は多くの変数の値をエディターに表示します。

このインラインデバッグ機能はデフォルトで有効になっています。インラインデバッグ値が表示されない場合は、デバッグツールウィンドウの設定アイコンを使用して有効になっていることを確認してください。

式の評価
最後に、任意の式をいつでも評価できます。例:変数の値を表示するには、ボタンをクリックします。
次に開いたダイアログで、評価をクリックします。

実際には、同じことを監視で見ることができます。評価式では、監視ではできないことを行うことができます。物事を変えることができます。
例:オドメーターの希望の値、たとえば 50 を入力してから、スクリプトをステップ実行し続けると、次のように表示されます。

詳細については、式の評価のセクションを参照してください。
このモードでは、いくつかのコマンドと式を入力できます。例:変数値を変更できます。

概要
おめでとう ! PyCharm の助けを借りてやったことを繰り返しましょう:
問題の原因を見つけた
ブレークポイントの設定
プログラムを一歩進んだ
監視を作成
表現を評価しました
関連ページ:

ステップ 1: 最初の Python プロジェクトを作成して実行する
始める前に :次の前提条件が満たされていることを確認してください。PyCharmCommunity または Professional を使用しています。Python 自体をインストールしました。macOS または Linux を使用している場合、コンピューターにはすでに Python がインストール...

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

デバッグツールウィンドウ
このツールウィンドウは、デバッグを開始すると使用可能になります。アプリケーションのデバッグセッションによって生成された出力を表示します。複数の実行 / デバッグ構成をデバッグする場合、各構成の出力は、対応する構成にちなんで名付けられた個別のタブに表示されます。各構成には、次のネストされたタブがありま...

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

フレーム
フレームペインでは、アプリケーションのスレッドのリストにアクセスできます。スレッドを調べるには、ペイン上部のリストからスレッドを選択します。スレッドのステータスとタイプは、スレッド名の横にある特別なアイコンとテキストのメモで示されます。スレッドごとに、スタックフレームを表示し、フレームを調べ、フレー...

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