1. はじめに|printじゃなくて「デバッガー」使ってみよう!
Pythonでプログラムを書いていて、「あれ?思った通りに動かないな……」と感じたこと、ありませんか?
そんなとき、よく使うのが print() を使った確認方法ですよね。
print(my_variable)
このようにして変数の中身を表示させて、バグの原因を探すのは定番の手法。でも、実際のところ何度もprintを書いたり消したりするのって、正直めんどくさい!
しかも、どこが原因かわからないと、いろんな場所にprintを埋め込むことになって、コードがゴチャゴチャになってしまいます。
そんなときにおすすめなのが「デバッガー」です。
デバッガーを使えば、
- プログラムの実行を好きな場所で一時停止できる
- 停止中に変数の中身や処理の流れをその場でチェックできる
- しかも、1行ずつ処理を進めながら挙動を確認できる
という便利機能がたっぷり!
この記事では、Python初心者でもすぐに使える「標準デバッガーの使い方」と「VS Codeでのデバッグ方法」を、画像なしでもわかりやすく解説していきます。
「バグが見つけられなくてモヤモヤする…」という人は、ぜひprint卒業を目指して、一緒にデバッガーデビューしてみましょう!
2. Python標準のデバッガーを使ってみよう
Pythonには、標準で使えるデバッガーが用意されています。外部ツールをインストールしなくてもすぐに使えるので、まずはこれから始めてみましょう!
✅ breakpoint()関数とは?
Python 3.7以降では、breakpoint() という便利な関数が使えるようになりました。
これは、「ここでプログラムを止めて、デバッグを開始してね!」とPythonに指示を出すための関数です。
たとえばこんなコード:
def greeting(name):
breakpoint() # ← ここで処理が止まる!
print(f"こんにちは、{name}さん!")
greeting("さくら")
このスクリプトを実行すると、breakpoint() のある行で実行が一時停止し、「pdb」と呼ばれるデバッガーモードに入ります。
🧪 デバッガーモード中にできること
デバッガーモードに入ると、次のような操作ができます:
| コマンド | 内容 |
|---|---|
p 変数名 | 指定した変数の中身を表示(例: p name) |
n | 次の行に進む(関数の中には入らない) |
s | 次の行に進む(関数の中にも入る) |
c | 実行を再開(次のブレークポイントまで一気に) |
q | デバッグを終了してプログラムをやめる |
特に p を使えば、その時点の変数の中身を確認できるのが便利です!
(Pdb) p name
'さくら'
🧩 Python 3.6以前の場合は?
Python 3.6以前のバージョンを使っている場合は、breakpoint() がまだ使えません。代わりに次のように書きます:
import pdb; pdb.set_trace()
これでも同じように、そこで実行が止まり、デバッガーモードに入れます。

breakpoint() をコードに入れたままにしておくと、次に実行したときも毎回そこで止まってしまいます。
バグの原因が見つかったら、デバッガーを使った行は忘れずに削除しておきましょう!
3. VS Codeでのデバッグ方法
Pythonを普段からVisual Studio Code(VS Code)で書いているなら、VS Codeに内蔵されたデバッガー機能を使うのが一番おすすめです!
コードの中に breakpoint() を書かなくても、マウスでポチッとブレークポイントを設定できて、とても直感的に使えます。
🛠 事前準備:Python拡張機能をインストール
まずは、VS CodeでPythonをデバッグするための準備をしておきましょう。
- VS Codeを開いたら、左側の「拡張機能」アイコン(四角が4つ)をクリック
- 検索欄に「Python」と入力
- Microsoft製の「Python」拡張機能が出てくるので、「インストール」をクリック!
これで準備OKです。
🟥 ブレークポイントの設定方法
- VS CodeでPythonファイルを開く
- 止めたい行の左側の余白をクリック(行番号のすぐ左)
- 赤い●が表示されたら、それがブレークポイントです!
def hello():
name = "さくら"
print("準備中...")
print(f"こんにちは、{name}さん!") # ← ここにブレークポイントを設定
▶️ デバッグの実行方法
- 左のメニューから「実行とデバッグ」アイコン(▶️+🐞)をクリック
- 上部に出てくるメニューで「Pythonファイル」を選択
- プログラムが始まり、ブレークポイントを設定した行で一時停止します
👀 デバッグ中にできること
VS Codeなら、デバッグ中に変数の中身を視覚的に確認できます!
- 画面左側に「変数」ウィンドウが自動表示
- 関数の中に入ったりスキップしたりも、ボタン1つで簡単!
主な操作ボタン:
| ボタン名 | アイコン | 内容 |
|---|---|---|
| ステップオーバー | ⏭️ | 次の行へ進む(関数の中には入らない) |
| ステップイン | ↘️ | 次の行へ進む(関数の中に入る) |
| 続行(Continue) | ▶️ | 次のブレークポイントまで一気に進む |
| 停止 | ⏹️ | デバッグを終了する |
🌟 VS Codeのデバッガーが便利な理由
print()もbreakpoint()も書かずに視覚的にデバッグできる- 実行中の変数の状態を自動で一覧表示
- マウス操作だけでステップ実行・中断・再開ができる

初心者でも扱いやすいので、PythonをVS Codeで書いている人は、ぜひこの機能を活用しましょう!
4. その他のエディタのデバッガー(PyCharmなど)
Pythonの開発に使えるエディタはVS Codeだけではありません。他にも人気のあるエディタやIDE(統合開発環境)には、VS Codeと同様に強力なデバッガー機能が標準で搭載されています。
特に有名なのが「PyCharm(パイチャーム)」です。
🧰 PyCharmのデバッガーってどんな感じ?
PyCharmはJetBrains社が提供しているPython専用のIDEで、初心者でも使いやすいGUIデバッガーが最初から組み込まれているのが魅力です。
主な特徴:
- ブレークポイントの設定:VS Codeと同じく、行番号の横をクリックするだけでOK。
- 変数の状態をリアルタイムで確認:停止中のすべての変数が、サイドバーに一覧表示されます。
- ステップ実行もボタン1つで簡単:▶️や⏭️のボタンで操作できます。
- 関数の中に入る/飛ばす/戻るなど細かい操作も自由自在。
さらに、Jupyter Notebook形式のデバッグにも対応している点も便利ですね。
🧪 他にもある!Python対応のエディタ
| エディタ名 | 特徴 |
|---|---|
| Thonny | 超初心者向け。大学や教育機関でもよく使われている。簡単にステップ実行や変数確認ができる。 |
| Spyder | データ分析寄りのIDEで、NumPyやpandasとの相性が良く、科学技術計算に強い。 |
| Jupyter Notebook | Webブラウザ上で実行可能。Cell単位でデバッグできるが、breakpoint()で簡易デバッグも可能。 |
どのエディタも、それぞれに合った使いやすいデバッガー機能がついています。自分が使いやすいと感じるツールを選んでOKです!
🎯 まとめ:printだけじゃない!デバッグの選択肢は豊富
Pythonには、いろんな方法でデバッグできる環境がそろっています。
- シンプルに
breakpoint()を使う - VS CodeでGUIでサクッと操作する
- PyCharmやThonnyで見た目重視のデバッグを楽しむ

バグでつまずいたら、「printで粘る」より「デバッガーでサクッと解決」してみませんか?
5. まとめ|printに頼らず、デバッガーでスマートに!
Pythonでプログラムを書くと、必ずどこかで「バグ」に出会います。
でも、そのバグを見つけて直す作業=デバッグは、ちょっとした工夫でずっとラクになります。
今回ご紹介した「デバッガー」を使えば、以下のようなことがすぐにできます:
- プログラムを好きな場所で一時停止
- その時点の変数の中身を確認
- 1行ずつ処理を追いながら、原因を探れる
print()だけで頑張っていた頃と比べて、圧倒的に効率アップ間違いなしです!
特に、VS CodeやPyCharmのようなエディターには、視覚的に分かりやすく、初心者でも使いやすい機能が揃っているので、最初のうちはそちらからチャレンジしてみるのもおすすめです。
バグに悩まされたら、まずはprintより「breakpoint()」やブレークポイントを試す。
それが、Python初学者が一歩レベルアップするための第一歩になります!
あわせて読みたい|バグ・エラーに強くなりたい人へおすすめ記事
プログラムのバグやエラーに悩んだとき、デバッガー以外にも知っておくと便利な知識があります。以下の記事もあわせてチェックしてみてください!
- 🔍 【Python入門】トレースバック(traceback)の読み方と活用法
→ エラーの出力を読み解ければ、バグの場所が一気にわかりやすくなります! - 🧪 【Pythonプログラミング入門】テストコードの書き方を解説!(pytest)
→ デバッガーだけでなく、自動テストを組み合わせれば、バグの早期発見が可能に!
よくある質問(Q&A)
- Q
breakpoint()ってどこに書けばいいの? - A
基本的には関数の中や処理の途中に書きます。トップレベルでも動作しますが、関数の中の方が扱いやすいです。
- Qprintとbreakpointの違いは?
- A
print()は結果を一方的に出すだけですが、breakpoint()は処理を止めてその場で中身を調べたり、動かしたりできるのが大きな違いです。
- QVS Codeを使ってないけど、デバッガーは使えますか?
- A
はい!Pythonは標準で
breakpoint()をサポートしており、コマンドラインやJupyter Notebookでも使えます。







※当サイトはアフィリエイト広告を利用しています。リンクを経由して商品を購入された場合、当サイトに報酬が発生することがあります。
※本記事に記載しているAmazon商品情報(価格、在庫状況、割引、配送条件など)は、執筆時点のAmazon.co.jp上の情報に基づいています。
最新の価格・在庫・配送条件などの詳細は、Amazonの商品ページをご確認ください。