最初の Python アプリケーションをデバッグする
問題の原因を突き止める
前のチュートリアルで Car スクリプトを作成して実行したことを覚えていますか ? もう少し遊んでみましょう。
スクリプトを実行する、 実行 ツールウィンドウに対応するコマンドを入力して、車を 1 回加速し、2 回ブレーキをかけます。

次に、 o を押してから Enter を押して、車の実行距離計を表示します。

スクリプトは、車が 0 キロメートル移動したことを示しています。 一度アクセルを踏んだのである程度の距離は走ったはずなので、これは予想外の結果です。 コードをデバッグしてその理由を調べてみましょう。
デバッグを開始するには、まず ブレークポイントを設定する必要があります。 デバッガーはブレークポイントのある行を実行する直前に停止し、プログラムの現在の状態を調べることができます。
車の実行距離計は 15 行目に設定されているため、そこにブレークポイントを置きます。 ガター内の行番号をクリックします。

次に、ガターの main 句の横にある アイコンをクリックし、 デバッグ 'car' を選択します。

PyCharm はデバッグセッションを開始し、 デバッグツールウィンドウを表示します。

車を加速するには、 a を押してから Enter を押します。 デバッガーはスクリプトを実行し、ブレークポイントで停止します。 デバッグ ツールウィンドウの スレッド & 変数 タブが開きます。 self を展開して、変数の現在の値を確認します。

デバッガーツールバーの (ステップオーバー) をクリックして、ブレークポイントを含む行を実行します。
odometer の値が 5 になり、次に実行される行 16 がエディターでハイライトされることに注意してください。

次に、 (再開) をクリックし、 デバッグ ツールウィンドウの コンソール タブに切り替えます。
b を押してから Enter を押して、車にブレーキをかけるように指示します。 スレッド & 変数 タブに戻り、変数を調べます。 現時点では speed が 0 であることに注意してください。

をクリックし、再度ブレーキをかけます (
b + Enter)。 次に、 スレッド & 変数 タブに切り替えて、次に何が起こるかを分析してみましょう。

odometer の値が 5、 speed の値が -5 であることがわかります。 そのため、実行を再開すると、 odometer は 0 になります。 ツールバーの をクリックすると、それが確実に行われるようになります。
予期しない結果が生じる理由は、 speed 変数の負の値です。
問題の修正
同じ問題が再び発生するのを避けるために、 speed が負の値に減らさないように Car の brake を更新しましょう。
brake メソッドでステートメント self.speed -= 5 を選択し、 Ctrl+Alt+T () を押します。

if を選択して、ステートメントに条件を追加します。
PyCharm はスタブ if 構造体を作成し、適切な内容で埋めるタスクを残します。

self.speed >= 5 と入力します。 コードでは、 brake メソッドが speed が 5 以上の場合にのみ 5 を差し引くように指定しました。

5 より低い速度はどうなりますか ? 実際にゆっくりと走っている車にブレーキをかけると、車は止まります。 それをコード内で指定しましょう。
brake メソッドの最後の行の後に新しい行を追加し、 el... の入力を開始します。 PyCharm では else を挿入できます。 Enter をプッシュして挿入すると、インデントが自動的に修正されます。

次に、 self.speed = 0 を追加して、車が停止することを指定します。 brake メソッドの更新されたコードは次のとおりです。
もう一度 実行を実行して、問題が解決したかどうかを確認してみましょう。 車を加速してから 2 回ブレーキをかけて、実行距離計を確認します。

現在、期待どおりの正しい結果が得られています。
詳細なデバッグ
デバッグツールウィンドウは、 フレーム、 変数、 ウォッチの専用ペインおよび、すべての入力・出力情報が表示される コンソールタブで構成されます。 コンソールを常に表示したい場合は、PyCharm ウィンドウの端のいずれかにコンソールをドラッグしてください。
ステップ
コードが行ごとに何をしているかを見たい場合は、すべての行にブレークポイントを置く必要はなく、コードをステップ実行することができます。
サンプルプログラムをステップ実行するとどのようになるかを見てみましょう。 ウィンドウの上部にある 実行 ウィジェットを使用して、デバッガーを起動または再起動します。

開いたデバッガーコンソールで a を押して車を加速します。 デバッガーはブレークポイントで停止します。
ステップツールバーボタンを使用して、次に停止する行を選択できます。

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

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。 ここではコード補完が利用できます。 フィールドの右端にある をクリックします。

次に、「コンソール 」タブに移動し、任意のコマンド (例: b) を入力します。
スレッド & 変数 タブに戻ると、 my_car.time の現在の値が表示されます。

詳細については、 ウォッチ式 を参照してください。
インラインデバッグ
コードが何をしているかを簡単に確認できるもう一つの PyCharm 機能に気付いたかもしれません: インラインデバッガーです。 いずれかのブレークポイントを押すと、PyCharm が多くの変数の値をエディター内に表示します:

この インラインデバッグ機能はデフォルトで有効になっています。 インラインデバッグ値が表示されない場合は、デバッガー設定で有効になっていることを確認してください。 デバッガーツールバーの をクリックし、 デバッガー設定 を選択します。 Show Variable Values in Editor が有効になっていることを確認してください。

要約
やりましたね! おめでとうございます! PyCharm を使って行ったことを繰り返してみましょう:
問題の原因を特定
ブレークポイントの設定
プログラムのステップスルー
ウォッチを作成
式の評価