【Python】コメントの書き方(1行、複数行)(練習問題付き)

Pythonでコメントを記述する方法をソースコード付きで解説します。

「コメント」とは

コメントは、「コードの意味や意図を説明するメモ」です。他人や未来の自分がコードを理解しやすくするために使います。以下のように、記述したいメモやコードの前に半角の「#」を付けることで、# からその行の終わりまでをコメントにすることができます。

# こんぴこーと表示するプログラム
print("こんぴこー")  # ← この行の右側にもコメントが書けます

プログラム実行時に「#」の後ろに記述された内容は無視されます。(プログラムの実行に影響されません)

RPGゲームの世界で例えると、「#」で始まるコメントは、冒険者が魔法書に書き残した手記。仲間が魔法書を読んだとき、「この魔法は何のためにあるのか?」を理解するための道しるべになります。

なお、クォーテーション(" や ')で囲まれた文字列の中に書かれた # は、コメントではなく通常の文字として扱われます。

# クォーテーションの中の「#」はそのまま文字として表示される
print("#これはコメントではなく文字列です")

以下のように、コードの先頭に#を付けて一時的に無効化することを「コメントアウト」といいます。

# print("こんぴこー")  # ← この処理が実行されなくなる
プログラムの動作がおかしいときの原因を特定する作業など、特定の処理を一時的に外したい場合に「コメントアウト」を使います。VS Codeなどのエディタでは、無効化したい行を選択してショートカットキー(Windowsは Ctrl + /、Macは Command + /)を押すことで、複数行のコメントアウトと解除を一括で行えます。

コメントの書き方の解説動画

コメントの書き方は、以下の解説動画でも確認できます。本稿の解説文章とあわせて参考にしてください。

「コメント」を書く位置と内容のコツ

コメントの位置を説明したいコードの「上側(ブロックコメント)」と「右側(インラインコメント)」、どちらに書くか迷うかと思います。 基本的には、以下のように使い分けるのが良いです。

コメントの位置 特徴 おすすめの場面
コードの上
(ブロックコメント)
・見やすい
・長めの説明が可能
丁寧な解説や、処理の目的・意図を説明したいとき
コードの右
(インラインコメント)
・コンパクト
・長文には不向き
補足的な一言や、変数の意味を軽く添えるとき

以下は、コードの上側にコメントを書く例です。対象となるコードと同じインデント(字下げ)の位置に揃えて記述します。複数行にわたる場合は、すべての行の先頭に # を付けます。

# 「購入するアイテム数」を取得して、整数に変換する
# 入力値は文字列として受け取るため、計算用にint()で変換が必要
item_num = int(input("購入するアイテム数を入力してください:"))

以下は、コードの右側にコメントを書く例です。

item_num = 18  # 初期所持アイテム数(上限は20個)
コメントには、コードを見ればすぐに分かること(例:x = x + 1 に「xに1を足す」と書くなど)は避け、「なぜその処理をしているのか」という目的や注意点を書くのがコツです。また、コードを修正したときはコメントも忘れずに書き換え、コードとコメントの内容が食い違わないようにしましょう。

「#」の前後に半角スペースを入れる

コメントを見やすくするため、「#」の後(コメント本文の前)には半角スペースを1文字入れるのが基本です。また、コードの右側にコメントを書く場合は、コードと「#」の間に半角スペースを2文字以上空けます。

この書き方はPythonの公式スタイルガイドでも定められていて、読みやすさと一貫性のために重要です。

#良くない例(#の前後にスペースなし)
item_num = 18#アイテム数

# 良い例(コードの後に半角スペース2つ以上、#の後に半角スペース1つ)
item_num = 18  # アイテム数
「PEP 8」というPythonのスタイルガイドでも推奨されています。スタイルガイドとは、「みんなが同じルールで読みやすいプログラムを書けるようにするための手引き」です。
コメントの文章には日本語(全角文字)を使えますが、記号の「#」やその前後のスペースを全角(# や全角空白)で入力すると構文エラー(SyntaxError)になります。日本語を入力した後は、次の行で全角記号を入力しないよう注意してください。

複数行コメントと文字列リテラル(Docstring)

Pythonには他の言語(C言語の /<em> ... </em>/ など)のような専用の複数行コメント記号はありません。複数行のコメントを書く場合も、原則として各行の先頭に # を並べて記述します。

一方で、ダブルクォーテーション3つ(""")、もしくはシングルクォーテーション3つ(''')で囲む「複数行の文字列リテラル」を、複数行の説明文やコメント代わりとして扱う方法もあります。

【ダブルクォーテーションを使った例】

"""
こんぴこー
と表示する
スクリプトです。
"""
print("こんぴこー")

【シングルクォーテーションを使った例】

'''
こんぴこー
と表示する
スクリプトです。
'''
print("こんぴこー")
「”””」や「”’」で囲んだ複数行は、厳密にはコメントではなく「文字列リテラル(複数行文字列)」です。変数に代入されていない文字列データが実行時に読み飛ばされる性質を利用しているため、前後のコードとインデント(字下げ)がずれるとエラー(IndentationError)になります。通常のコメントやコードの無効化には「#」を使い、「”””」や「”’」は関数やクラスの仕様を説明する「Docstring(ドキュメンテーション文字列)」として使うのが一般的です。
資格試験(Python 3 エンジニア認定基礎試験など)の対策として、ファイルの1行目や2行目に書く特殊なコメントも知っておきましょう。Linuxなどで実行プログラムを指定する #!/usr/bin/env python3(シェバン)や、ファイルの文字コードを指定する # -*- coding: utf-8 -*-(エンコーディング宣言)は、# で始まりますがシステムに特別な設定を伝える役割を持っています(Python 3では標準でUTF-8が使われるため、通常のコードではエンコーディング宣言を省略できます)。

練習問題(基礎固め & 資格勉強用)

本ページで学んだ内容を定着させるとともに、「Python 3 エンジニア認定基礎試験」や「基本情報技術者試験」の対策にも役立つ練習問題を用意しましたので、チャレンジしてみてください。

【問題1】コメントの基本構文

次のうち、Pythonでコメントを書く正しい方法を選びなさい。

A. // これはコメントです
B. # これはコメントです
C. -- これはコメントです
D. /<em> これはコメントです </em>/

正解:B
解説:Pythonでは、半角の#を使ってコメントを書きます。
他の選択肢はC言語やJavaScript、SQLなど、Python以外の言語で使われる記法です。

【問題2】コメントの基本

次のコードの実行結果として正しいものを選びなさい。

# これはコメントです
print("Python")

A. Python
B. # これはコメントです
C. エラーになる
D. 何も表示されない

正解:A
解説:#で始まる行はコメントとして扱われ、プログラム実行時に無視されます。
print("Python")だけが実行され、「Python」と表示されます。

【問題3】コメントと実行結果

次のコードの出力として正しいものを選びなさい。

print("A")  # これはAを表示します
# print("B")

A. A
B. AとB
C. Bのみ
D. 何も表示されない

正解:A
解説:コメントは実行されません。print("A")は実行され、「A」が表示されます。
print("B")はコメントアウトされているため、無視されます。

【問題4】コメントの目的

コメントの主な目的として正しいものを選びなさい。

A. プログラムの実行速度を上げる
B. プログラムの動作を変更する
C. プログラムの説明や意図・メモを残す
D. エラーを防ぐ

正解:C
解説:コメントはプログラムの処理目的や説明・メモを残すために使われ、実行結果や処理速度には影響しません。

【問題5】コメントアウトの意味

「コメントアウトする」とはどういう意味か、最も適切なものを選びなさい。

A. コメントを削除する
B. コメントを実行する
C. コードをコメントに変えることで一時的に無効化する
D. コメントを翻訳する

正解:C
解説:「コメントアウト」とは、コードの先頭に#を付けて一時的に無効化することです。

【問題6】コメントの位置

次のうち、Pythonでコメントを開始できる位置として正しいものを選びなさい。

A. 行の先頭のみ
B. 行の途中(コードの後ろ)のみ
C. ファイルの末尾のみ
D. 行の先頭でも、行の途中(コードの後ろ)でも記述できる

正解:D
解説:#は行の先頭にも、コードの後ろ(行の途中)にも記述できます。
ただし、#からその行の末尾までがすべてコメントとして扱われるため、同じ行の#より後ろに実行したいコードを書くことはできません。

【問題7】コメントと文字列の違い

次のコードの出力として正しいものを選びなさい。

print("#これはコメントではない")

A. #これはコメントではない
B. コメントとして無視される
C. エラーになる
D. 何も表示されない

正解:A
解説:クォーテーション("や')で囲まれた文字列リテラルの中の#はコメント記号ではなく、ただの文字として扱われます。

【問題8】コメントの書き方(誤り)

次のうち、コメント(または複数行の説明文)の記述として誤っており、構文エラーになるものを選びなさい。

A. #これはコメント
B. # これはコメント
C. /#これはコメント
D. """これは説明文"""

正解:C
解説:Pythonでは行頭の/はコメント記号ではないため、構文エラー(SyntaxError)になります。
コメントには#を使うほか、複数行の説明文やDocstringには""" """(文字列リテラル)を使うことができます。

【問題9】コメントの活用場面

次のうち、コメントを使うべき場面として最も適切なものを選びなさい。

A. 処理の意図や背景を説明したいとき
B. 実行速度を上げたいとき
C. エラーを回避したいとき
D. 変数名を変更したいとき

正解:A
解説:コメントは、コードの処理内容や「なぜそう書いたのか」という意図を説明するために使います。
他の選択肢はコメントの目的とは異なります。

課題(実践力強化用)

Pythonプログラミングの実践力を強化したい人向けの課題を用意しました。仕様通りに動くプログラムを書いたり、エラーメッセージを読んでコードを修正するという作業は、プログラミングにおいて重要ですので、初心者の方は是非チャレンジしてみてください。

課題① 1行コメントを使ってコードの説明を書く

以下の仕様を満たすPythonコードを1から書いてください。

  • 「こんにちは、冒険者!」と表示する
  • その上の行に、# を使って「あいさつメッセージを表示する」というコメントを書く
こんにちは、冒険者!
仕様を満たすコードは次のようになります。
# あいさつメッセージを表示する
print("こんにちは、冒険者!")
コメントはプログラム実行時に無視されますが、コードの意図を他の人や未来の自分に伝える役割があります。

課題② コメントアウトで処理を一時停止する

以下のコードを実行すると、2つのメッセージが表示されます。
「また会おう!」の行をコメントアウトして、1つ目のメッセージだけ表示されるようにしてください。

print("旅の準備はできたかい?")
print("また会おう!")
旅の準備はできたかい?
コメントアウトは # を行頭に付けることで行えます。
print("旅の準備はできたかい?")
# print("また会おう!")
このようにすれば、該当行は実行されず、後で必要になったときにコメントを外せば再び有効になります。

課題③ 複数行の説明文を書く

以下の仕様を満たすPythonコードを書いてください。

  • 三重クォーテーション(複数行文字列リテラル)を使って「ポーションの作り方」を3行で説明する
  • 説明の後に print("ポーション完成!") を書く
ポーション完成!
三重クォーテーション(""" または ''')で囲むか、各行の先頭に # を付けて記述します。
"""
ポーションの作り方:
1. 赤いハーブを混ぜる
2. 青いハーブを加える
3. 魔法の水で仕上げる
"""
print("ポーション完成!")
三重クォーテーションによる複数行文字列は、ファイルや関数の冒頭で長い説明・手順(Docstring)をまとめるのに便利です。なお、通常のコメントとして各行の先頭に # を付けて書いた場合も同じ出力結果になります。

課題④ コメントを使って注意書きを残す

以下のコードに、ボス戦専用であることを示すコメントを追加してください。

print("メテオストライクを詠唱した!")
メテオストライクを詠唱した!
コメントはコードの意味や注意点を残すのに役立ちます。
# この魔法はボス戦専用
print("メテオストライクを詠唱した!")
こうしておくと、後からコードを読む人が「なぜこの処理があるのか」という意図や制約を理解しやすくなります。

関連ページ(もっと学びたい人へ)

Pythonの基礎から応用例まで、以下ページから学ぶことができます。

【Python超入門】基礎から応用例まで幅広く解説
PythonについてPythonは、統計処理や機械学習、ディープラーニングといった数値計算分野を中心に幅広い用途で利用されているプログラミング言語です。他のプログラミング言語と比較して「コードが短くて読みやすい、書きやすい」「ライブラリが豊...

コメント