コメントで意図を残す

生田 陸人
LuaGate エンジニア / 現役エンジニア
編集 LuaGate編集部

コメントで意図を残す とは

Python のコメント記法を学んで、コードに「なぜ」を残す習慣を身につけよう。本レッスンでは、コメントで意図を残す の基本から実際の使いどころまでを整理し、現場で迷わず使える形に落とし込みます。

コメントは「未来の自分」への手紙

コードを書いていると、「なぜここでこの計算をしているのか」が 1 ヶ月後の自分には全く思い出せない、ということがよく起こります。Python には、実行されないテキスト = コメント を書く文法が用意されていて、これがコードの意図を残すための最強のツールです。

良いコードとは、書き手が消えても他人が安全に触れるコード。コメントはそのために必須の習慣です。

Python のコメント記法

Python のコメントは # から行末までです。とてもシンプルで、行の途中からでも書けます。

Python

# これは行全体がコメント x = 10 # 行末コメントも OK # x = 20 # コメントアウトされた行は実行されない

複数行コメントの専用文法はありませんが、# を各行の頭に付けて並べる、もしくは三重クオート """...""" の文字列を「捨てる」形で書く、という慣習があります。後者は厳密にはコメントではなく文字列リテラルですが、関数の説明用に docstring として広く使われています。

Python

def add(a, b): """a と b を足した値を返す関数.""" return a + b

docstringhelp(add) で表示されたり、Sphinx などのツールでドキュメント生成に使われたりします。単なるコメントよりも一段強力です。

何を書くか — what より why

コメントで陥りやすい罠は、「コードがやっていること (what)」をそのまま日本語に翻訳してしまうことです。

Python

# i に 1 を足す i = i + 1

これは情報量がほぼゼロです。コードを読めば誰でも分かる内容を、わざわざ書く必要はありません。代わりに、なぜ その処理が必要なのかを書きましょう。

Python

# 表示は 1 始まりにしたいので、0 始まりの index を補正 i = i + 1

これなら、後から読んだ人が「ああ、表示用なのね」と理解できます。コメントは why を書く、これが鉄則です。

動きを追ってみる

コードとコメントの関係をイメージしておきましょう。

diagram (will load when visible)

インタプリタにとってコメントは存在しないも同然ですが、人間にとってはコードと同じくらい重要な情報源です。実行コストはゼロなので、必要だと思ったら遠慮なく書きましょう。

よくある間違い

コメントについて初学者がやりがちなパターンは、次の通りです。

  • 嘘のコメントが残っている (コードを直したのにコメントは古いまま)
  • コードと同じ内容を日本語で書いただけのコメント
  • TODO だけ書いて永遠に放置
  • # を全角の で書いて SyntaxError

特に「嘘のコメント」は最悪で、コメントを信じた後任者がバグを埋め込む原因になります。コードを修正したらコメントも合わせて更新する、これは絶対のルールです。

コメントは「書いて終わり」ではなく、コードと一緒に保守する対象です。

もう 1 つ覚えておきたいのが、# TODO: ... # FIXME: ... # NOTE: ... という慣習的なマーカーです。多くのエディタがこれらをハイライト表示してくれるので、後で対応すべき箇所を可視化するのに便利です。

Python

def parse_date(s): # TODO: タイムゾーンを考慮する。今は UTC 固定。 return s

やってみよう

このレッスンの課題は、コメント付きで ab の合計を返す add_with_comment 関数を書くことです。動作自体は単純な足し算ですが、関数の上に 何のための関数か を 1 行コメントで書き、return の上には どんな計算をしているか を補足するコメントを書いてみましょう。

Python

# a と b の合計を返すユーティリティ関数 def add_with_comment(a, b): # 単純な足し算だが、レッスン課題用にコメントを残す return a + b

コメントの有無は採点に影響しませんが、習慣として why を残す癖をつけるための演習です。慣れてきたら、docstring も書いてみるとさらに本格的です。

Python

def add_with_comment(a, b): """a と b の合計を返す. レッスン課題用のシンプルな例。 """ return a + b

「読みやすいコードを書く」は、Python の理念 The Zen of Python の中でも繰り返し強調されています。コメントはその第一歩。

コメントを書ける人と書けない人では、3 年後のコードの読みやすさが天と地ほど違います。最初のうちから「未来の自分への手紙」を残す習慣を身につけましょう。

おまけ — コメントアウトのテクニック

開発中に「この行をいったん無効化して動きを確かめたい」というケースは頻繁にあります。そんなときに使うのが コメントアウト です。行頭に # を足すだけで、その行を実行されないテキストに変えられます。

Python

# 旧バージョンの計算式 (新仕様で不要になったが念のため残す) # total = price + price * 0.08 total = price + price * 0.10

多くのエディタには「選択範囲をまとめてコメントアウト/解除」のショートカットがあります。VSCode なら Cmd + / (Mac) または Ctrl + / (Windows) です。1 行ずつ # を付けるのではなく、ショートカットを使うクセを早めにつけておきましょう。

ただし、長期間「コメントアウトしたまま放置されたコード」は混乱の元です。Git のバージョン管理で履歴を残せるので、不要になったコードは原則として削除します。

よくある質問

Q. このトピックは Python 以外の言語でも同じ書き方ですか?

A. 考え方は他言語と共通ですが、構文や標準ライブラリは異なります。Python はインデントでブロックを表し、コロン + 改行で構造を作るのが特徴です。他言語に移行する際は基本概念を維持しつつ、構文の差分を意識して書き換えると混乱が少ないです。

Q. 実行してエラーが出た場合の対処は?

A. エラーメッセージの最後の行(TypeError や NameError などの型)から原因と該当行を確認します。Python はトレースバックが下から上に読むと「呼び出し元 → 内部」の順で辿れます。print や IDE のデバッガで途中の変数を確認すると原因が見えてきます。

Q. 次のステップで何を学ぶべきですか?

A. 本レッスンの内容を理解できたら、本文の「やってみよう」を実装し、章末クイズに進むのがおすすめです。さらに自分のミニアプリ(電卓・todo・スコア集計など)に応用するとスキルが定着します。詰まったら本文の H2 セクションに戻って読み返してください。

次のレッスン

次は 商と余りを一度に求める で、Python のコメント記法を学んで、コードに「なぜ」を残す習慣を身につけよう を学びます。

事前確認 — 進む前に次の 3 つができることを確認しましょう。

  1. コメント の要点を自分の言葉で説明できる
  2. このレッスンの最小コード (または操作手順) を見ずに書ける
  3. 練習問題やクイズで間違えた箇所を読み直して理解した

理解度チェック (30 秒)

Q. コメント とは何か、1 文で説明してください。

この章のポイント

A. 本文の「このレッスンで分かること」または冒頭の説明文を見直し、自分の言葉で要約できれば OK。詰まったら本レッスンの最初の H2 セクションを読み返してみましょう。

関連レッスン

要件

  1. 関数名は add_with_comment、引数は a と b
  2. a と b の合計を return する
  3. コード中に最低 1 行のコメントを書く

入出力例

test-cases.txt

add_with_comment(2, 3)5 add_with_comment(0, 0)0 add_with_comment(-5, 3)-2

ヒント

main.py
main.py
学習モード

メモ

コメントで意図を残す

⌘S で保存